У меня есть форма, которая, как мне кажется, Cake делает поля обязательными или не обязательными настолько случайно, что я даже не могу контролировать это. Пожалуйста, помогите мне понять, как заставить работать необходимые поля.
public $validate = array(
'fname' => array(
'rule1' => array(
'rule' => 'notEmpty',
'message' => 'Please enter your first name'
),
'rule2' => array(
'rule' => array('maxLength', '50'),
'message' => 'First name cannot exceed 50 characters'
)
),
'sname' => array(
'rule1' => array(
'rule' => 'notEmpty',
'message' => 'Please enter your last name'
),
'rule2' => array(
'rule' => array('maxLength', '50'),
'message' => 'Last name cannot exceed 50 characters'
),
),
'email' => array(
'rule1' => array(
'rule' => 'notEmpty',
'message' => 'Please enter your email address'
),
'rule2' => array(
'rule' => array('maxLength', 100),
'message' => array('Email cannot exceed 100 characters')
),
'rule3' => array(
'rule' => 'email',
'message' => 'Please enter a valid email address'
),
'rule4' => array(
'rule' => 'isUnique',
'message' => 'An account already exists with that email address',
'on' => 'update'
)
)
);
Все эти 3 поля не могут быть пустыми, но Cake решает, чтобы fname
и sname
отображались в форме, как требуется, но электронная почта не требуется. Я говорю о классе на входах, что делает его обязательным. Это так случайно. В базе данных все поля идентичны VARCHAR, а не NULL.
Я пытался добавить allowEmpty => false
к электронному письму, но оно ничего не делает. Это работает с другими полями, которые имеют только одно правило, но не работают с полями, имеющими несколько правил. Тем не менее, я хочу знать, почему он требует fname и sname, но не email.
Снимок экрана: http://i.imgur.com/3JMTR.gif