Средство проверки пользовательских форм Zend «НЕ НАЙДЕНО»

#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_');