Я хотел бы знать, как различные правила валидации взаимодействуют друг с другом и как они выравниваются.Правила валидации notEmpty и requirePresence
Я думаю, что самый простой способ - это несколько примеров.
Предположим, мы отправляем сообщение для блога. Поэтому мы будем работать над валидацией в нашем PostsTable
.
->notEmpty('title')
->requirePresence('title')
->add('title', 'length', [
'rule' => ['minLength', 5],
'message' => 'Must be longer than 5 characers'
]);
->notEmpty('download_speed')
->add('download_speed', 'rule', ['rule' => 'numeric'])
->requirePresence('download_speed')
Таким образом, в этом примере, являются notEmpty()
и requirePresence()
правила на самом деле нужно, потому что minLength
будет обеспечивать присутствие и не пусто, потому что, очевидно, пустая строка меньше 5 символов?
Аналогично, во втором примере пустое значение не будет числовым, чтобы правило в свою очередь заставило его присутствие.
Соответствие 'money' и' numeric' аналогично? –
@DavidYell Обратите внимание на то, что именно вы подразумеваете под перекрытием, однако «деньги» могут быть удовлетворены простым числом, например '10', но оно также принимает нечисловые (число машинных номеров) значений типа' 10,50' или ' 10 $ ', поэтому эти два правила не взаимозаменяемы. – ndm