#zend-framework #zend-form
#zend-framework #zend-form
Вопрос:
Я застрял в следующей ситуации. Чтобы проверить URL с помощью zend_form, я должен добавить пользовательский средство проверки. Я пытаюсь добавить пользовательский валидатор с именем ‘IsUrl.php » в;
Что я делаю сейчас
Я добавляю IsUrl.php чтобы;
Library/Lib/Validate/
В моем boodstrap:
protected function _initLibAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Lib',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
Тест в контроллере с помощью;
$test = new Zend_Validate();
$test = new Lib_Validate_IsUrl();
Фатальная ошибка;
Fatal error: Class 'Lib_Validate_IsUrl' not found in
Спасибо за совет.
С уважением, Ник
Ответ №1:
Вам нужно будет сообщить ZF, что у вас есть пользовательские валидаторы 🙂 Вы можете настроить свой загрузчик следующим образом:
protected function _initValidators () {
$autoloader = new Zend_Application_Module_Autoloader (array ('namespace' => '', 'basePath' => APPLICATION_PATH));
$autoloader->addResourceType ('Validator', 'validators', 'Validator_');
}
Комментарии:
1. Не лучше ли хранить такие средства проверки в папке библиотеки? Как library/My/Validator/IsUrl.php в данном случае?
2. Вы можете хранить их где угодно. Вопрос заключался в том, почему ZF не может найти средство проверки, а не где его хранить 🙂
3. Кис Шеперс, да. Я знаю, что в этом есть смысл. Но сначала мне нужно, чтобы эта вещь работала. entek, логично сообщить об этом загрузчику, спасибо за это, но все та же фатальная ошибка : (..
4. Как указано выше, вы переместили свой валидатор в
Library/Lib/Validate
. Вы должны адаптировать автозагрузчик к вашим изменениям. Попробуйте выполнить следующее:$autoloader->addResourceType ('Validator', 'Lib/Validate', 'Lib_Validator_');