想知道是否有人以前遇到過這個問題。 我使用的是預配置的形式規範使用Zend \表格\廠創建形式,我也注入FormElementManager進工廠,因此可以找到我的自定義元素等使用工廠創建表單時,無法在ZF2中使用自定義驗證器
我的問題是:
即使如果任何自定義驗證器都在表單中註冊,則不會觸發isValid()方法。有什麼我需要做的,以獲得與工廠創建窗體觸發的isValid()。
我的源看起來像以下:
$spec = [
'hydrator' => '...',
'fieldset' => [
...,
...,
...,
],
'input_filter' => [
...,
....
....,
//contains my custom validator in here
],
];
$factory = new Factory();
$factory->setFormElementManager($formElementManager);
$form = $factory->createForm($spec);
但是,當我觸發:
$form->isValid()
它沒有得到在我的自定義驗證和isValid電話。
感謝Alex,您的評論。 –
問題不僅在於此。基本上任何不需要的zf2表單元素都不會調用驗證器鏈中的驗證器,這會導致我遇到的問題。我的解決方案是在不需要輸入時添加Not_Empty驗證器,這會觸發所有驗證器,包括我的自定義驗證器。請參閱:https://akrabat.com/category/zend-framework-2/ –