Одно поле из двух

Столкнулся с необходимостью сделать так, чтобы Cake проверял при валидации заполненность хотя бы одного поля формы из двух. Чтобы от клиента требовать хотя бы имя или фамилию ну, или оба.

Сделал вот такой метод для валидации:

Вот так его в правилах валидации указываю.

Получилось красиво, но насыпалась неприятностей:

  1. Cake считает, что оба поля необходимы, в форме он формирует поля со свойством required и div обертки с соответствующим классом
  2. Если принудительно указать при вызове помощника (helper), что ‘required’=>false, то у input’а свойство убирает, но div продолжает оборачивать. Возможно, глюк dev-версии 2.4
  3. Если обоим полям в модели при валидации указать ‘allowEmpty’=>true, то красивый метод не срабатывает, Cake тогда считает что оба пустых поля тоже валидны

Увы, придется, видимо, в beforeValidation или afterValidation переносить проверку.

Автор

Сергей Родовниченко

Родился, учился, работал и все такое. Занимаюсь поддержкой сайтов на Shop-Script, Joomla, Wordpress, Prestashop. А также на самописных движках на базе CakePHP.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *