Cakephp: форма Vailidation - PullRequest
       1

Cakephp: форма Vailidation

0 голосов
/ 25 декабря 2010

Я пытаюсь создать валидатор для моих моделей:

Но, взяв пример из http://book.cakephp.org/:

  var $validate = array(
  'country' => array(
    'rule' => 'notEmpty'
 )
);

, выдает следующую ошибку: preg_match () [function.preg-match]: разделитель не должен быть буквенно-цифровым или обратным слешем [CORE / cake / libs / model / app_model.php, строка 166]

Путем поиска этой ошибки я нашел запись в списке рассылки, в которой рекомендуется использовать: (* http://cakephp.1045679.n5.nabble.com/validation-notEmpty-td1320629.html)

 'country' => array(
    'rule' => VALID_NOT_EMPTY,
    'message' => 'This field cannot be left blank.'
    )

, который не работал, поэтому я попытался:

'country' => array(
    'rule' => 'VALID_NOT_EMPTY',
    'message' => 'This field cannot be left blank.'
    )

, который пометил поле как обязательное, но не помешал мне оставить его пустым.

У меня вопрос: как это правильно сделать? Я использую CakePHP 1.3.6

Ответы [ 3 ]

1 голос
/ 26 декабря 2010

Скорее всего, вам нужно поставить ключ required; как то так:

'country' => array(
    'rule' => 'notEmpty',
     required => true,
    'message' => 'This field cannot be left blank.'
    )

Надеюсь, это поможет.

0 голосов
/ 09 апреля 2013

в вашем файле просмотра просто добавьте 'class' = 'required', например:

<?php echo $this->Form->input('new_email',array('class'=>'email required yellow', 'div'=>false, 'label'=>false));?>
0 голосов
/ 27 декабря 2010

Почему вы не используете командную строку для выпечки своих моделей (cmd: cake bake)? Если вы запекаете модели, вы можете указать там правила проверки. Это быстро и легко ... и вы можете увидеть, как работает проверка.

Это мне очень помогло ...

Вот пример кода.

'username' => array(
        'notempty' => array(
            'rule' => array('notempty'),
            'message' => 'Username required',
            'allowEmpty' => false,
            'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),

Вы должны использовать массив для определения правила ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...