Такая ситуация.
Форму добавления/редактирования юзера я получаю из менеджера сервисов с уже установленным фильтром, в котором есть проверка ввода пароля. Но этот пароль не нужен когда юзера редактируют. Могу ли я как-то налету в контроллере отключить у фильтра формы проверку по полю?
В getServiceConfig модуля:
// ....
'UserCRUDFilter' => function($sm)
{
return new \Users\Form\UserCRUDFilter();
},
'UserCRUDForm' => function($sm, $param, $param1)
{
$form = new \Users\Form\UserCRUDForm();
$form->setInputFilter($sm->get('UserCRUDFilter'));
return $form;
},
// ....
То есть вначале получаю форму
$form = $this->getServiceLocator()->get('UserCRUDForm');
Потом отключаю необходимость ввода пароля, если юзера редактируют и пароль не введен
if ($user_id > 0 && $this->request->getPost('password') == '') {
$form->.... // Как-то получаю доступ к классу фильтра и убираю required у проверки пароля
}
И потом уже выполняю
$form->isValid();