【问题标题】:Zend custom form validator 'NOT FOUND'Zend 自定义表单验证器“未找到”
【发布时间】:2011-11-01 10:33:31
【问题描述】:

我陷入了以下情况。要使用 zend_form 检查 url,我必须添加一个自定义验证器。我尝试在其中添加名为“IsUrl.php”的自定义验证器;

我现在做什么

我将 IsUrl.php 添加到;

Library/Lib/Validate/

在我的引导程序中:

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

感谢您的建议。

诚挚的问候, 尼克

【问题讨论】:

    标签: zend-framework zend-form


    【解决方案1】:

    您必须告诉 ZF,您有自定义验证器 :) 您可以像这样调整引导程序:

    protected function _initValidators () {
        $autoloader = new Zend_Application_Module_Autoloader (array ('namespace' => '', 'basePath' => APPLICATION_PATH));
        $autoloader->addResourceType ('Validator', 'validators', 'Validator_');
    }
    

    【讨论】:

    • 在库文件夹中保留这样的验证器不是更好吗?在这种情况下像 library/My/Validator/IsUrl.php 一样吗?
    • 您可以将它们存储在任何您想要的位置。问题是为什么 ZF 找不到验证器而不是在哪里存储它:)
    • Kees Schepers,是的。你说得有道理,我知道。但首先我需要这个东西工作。 entek,让引导程序知道是合乎逻辑的,谢谢你,但仍然是同样的致命错误:(..
    • 正如您在上面所写的,您已将验证器移至Library/Lib/Validate。您必须使自动加载器适应您的更改。请尝试以下操作:$autoloader->addResourceType ('Validator', 'Lib/Validate', 'Lib_Validator_');
    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2011-08-06
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多