Простая проблема, но я не могу найти свое решение. У меня есть поле загрузки галереи с несколькими файлами, например:
echo $this->Form->input('Item.gallery.', array( 'label' => __('Gallery'), 'type' => 'file', 'multiple' => 'multiple', ));
И я получил правила проверки следующим образом:
'gallery' => array( 'fileSize' => array( 'rule' => array('fileSize', '<=', '1MB'), 'message' => 'Image must be less than 1MB', 'allowEmpty' => true, 'last' => false, ), 'extension' => array( 'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg')), 'message' => 'Invalid image', ), ),
Если я помещаю одно поле для загрузки файла, то это не требуется. Когда я устанавливаю его в несколько, это необходимо, и я не хочу, чтобы это было. Как мне это сделать?
РЕДАКТИРОВАТЬ:
Уловка устанавливала значение 'required' => false
в параметрах поля ввода в файле .ctp:
echo $this->Form->input('Item.gallery.', array( 'label' => __('Gallery'), 'type' => 'file', 'multiple' => 'multiple', 'required' => false, ));
Правила проверки в модели остались прежними.
Попробуйте добавить 'novalidate'
в ваш массив параметров в $this->Form->create();
, Это отключает проверку HTML5.
Я ожидаю, что это сработает, но если вы не попробуете добавить 'required' => false
к вашим правилам проверки (идет по полю, а не по правилам, поэтому вам нужно только его в одном из правил не для обоих)