CakePHP, почему я получаю эту ошибку? - PullRequest
2 голосов
/ 25 января 2011

Вот сообщение об ошибке:

Предупреждение (2): preg_match () [http://php.net/function.preg-match]: Разделитель не должен быть буквенно-цифровым или обратным слешем [CORE / cake / libs / model / model.php, строка 2611]

Это происходит, когда я вызываю следующий код с моего контроллера:

$this->Account->save($this->data)

Модель выглядит так:

class Account extends AppModel 
{       
    var $validate = array(        
        'first_name' => array(
            'rule' => array('minLength', 1),
            'required' => true   
        ),
        'last_name' => array(
            'rule' => array('minLength', 1),
            'required' => true   
        ),
        'password' => array(
            'rule' => array('minLength', 8),
            'required' => true    
        ),        
        'email' => array(
            'emailRule1' => array(
                'rule' => 'email',
                'required' => true,
                'message' => 'You must specify a valid email address' 
            ),
            'emailRule2' => array(
                'rule' => 'unique',
                'message' => 'That email address is already in our system'     
            )
        )   
    );
}

Я нашел похожую проблему объяснил здесь

Он решил это, изменив required' => true на required' => array(true) Я пробовал это для каждого случая в моей модели, но это не решило проблему.

1 Ответ

7 голосов
/ 25 января 2011

Проблема в том, что я назвал правило unique, вместо него должно быть isUnique.

Я бы понял это намного быстрее с лучшим сообщением об ошибке.

...