Вы должны добавить каталог, в котором у вас есть пользовательские валидаторы, к пути префикса элементов формы.Например:
$elementPrefixPaths =
array(
array(
array(
'prefix' => 'My_Validate_',
'path' => 'My/Validate', // 'application/validators' in your case
'type' => 'validate',
)
)
);
$form->addElementPrefixPaths($elementPrefixPaths);
// or, if your're inside the form,
// $this->addElementPrefixPaths($elementPrefixPaths)
// before any elements make use of the validator.
'Путь' должен быть в вашем пути включения.Вы должны сделать то же самое с вашими пользовательскими фильтрами.Также существует аналогичный подход для пользовательских декораторов и элементов (которые вместо этого используют метод setPrefixPaths ()).
Подробнее здесь .
Ваш путь - 'application /валидаторы, но было бы лучше следовать соглашению ZF по именованию классов и зеркалированию путей;в качестве такового вы должны поместить свой валидатор в каталог, такой как «My / Validate». Вы должны следовать этому соглашению для всех пользовательских расширений ZF, которые вы разрабатываете (фильтры, помощники, плагины и т. д.).Это сделает вашу жизнь легче в долгосрочной перспективе.Также, в качестве окончательного предложения, не используйте «My_» в качестве префикса классов, используйте что-то более личное, например «Mem_» (с учетом вашего псевдонима).