2013-02-10 3 views
0

Я просто скачал свежую копию CakePHP версии 2.3.0, и я пытаюсь для проверки выбора поля формы, которую я только что создал:CakePHP не подтверждение выбора поля

echo $this->Form->input('province_id', array('empty' => '- select -', 'options' => $options)); 
echo $this->Form->input('username'); 

И проверки:

public $validate = array(
    'username' => array(
     'required' => array(
      'rule' => array('notEmpty'), 
      'message' => 'A username is required' 
     ) 
    ), 

    'province_id' => array(
     'rule' => 'notEmpty', 
     'message' => 'Select something' 
    ) 
); 

Поле имени пользователя проверяется правильно, но domain_id игнорируется. Что это может быть?

ответ

2

Вы должны написать так:

public $validate = array(
    'username' => array(
     'required' => array(
      'rule' => array('notEmpty'), 
      'message' => 'A username is required' 
     ) 
    ), 
    'province_id' => array(
     'required' => array(
      'rule' => array('notEmpty'), 
      'message' => 'Select something' 
     ) 
    ) 
); 
+0

Я попробовал это, такое же поведение. –

0

Лучше поздно, чем никогда, попробуйте следующее:

public $validate = array(
    'username' => array(
     'required' => array(
      'rule' => array('notEmpty'), 
      'message' => 'A username is required' 
     ) 
    ), 
    'province_id' => array(
     'required' => array(
      'rule' => array('myOwnValidationRule'), 
      'message' => 'Select something' 
     ) 
    ) 
); 

function myOwnValidationRule($data) 
{ 
    if($data["province_id"] != 'empty') 
    { 
     return true; 
    } 
} 
0

Похоже, ваши формы вспомогательные декларации в порядке.

Мой опыт работы с Cake показывает, что проверка правильна, когда вы начинаете смешивать синтаксис (одно из ваших полей имеет вложенный массив, а другой - нет). Я уверен, что есть какая-то рифма или причина того, что происходит, но я на самом деле не погрузился в эту глубину и, как правило, просто проб и ошибок.

Попробуйте это:

public $validate = array(
    'username' => array(
     'rule' => 'notEmpty', 
     'required' => true, 
     'message' => 'A username is required' 
    ), 

    'province_id' => array(
     'rule' => 'notEmpty', 
     'required' => true, 
     'message' => 'Select something' 
    ) 
); 
Смежные вопросы