找不到Zend表单自定义筛选器类

时间:2013-07-04 12:19:34

标签: zend-framework filter zend-form zend-form-element

我的自定义Zend表单筛选器类未加载。

自定义过滤器类名称为: SF_Filter_AlnumDashes ,它位于: 库/ SF /筛选/ AlnumDashes.php。

我为" SF _"配置了自动加载功能。命名空间到application.ini:

autoloadernamespaces[] = "SF_"

但是当我尝试在Zend Form创建过程中加载Class时,我发现找不到类coudn的错误: 致命错误:Class' AlnumDashesUnderscore'没有找到......

以下是导致Zend Form类错误的代码:

class Admin_Form_Product_Generalinfo extends SF_Form_Abstract {

    public function init() {

        //set ID Attribute on the form element
        $this->setAttrib('id', 'product_general_info');

        $elementPrefixPaths = array(
                array(
                    array(
                        'prefix' => 'SF_Filter', 
                        'path' => 'SF/Filter/', // 'application/validators' in your case
                        'type' => 'filter',
                    )
                )
            ); 
        $this->addElementPrefixPaths($elementPrefixPaths);

    $this->addElement('text', 'title', array(

            'filters' => array('StringTrim', 'StripTags'),
            'validators' => array(
        array('StringLength', true, array(2, 250)),
            ),
            'required' => true,
            'label' => 'Title',
            'attribs' => array(
                'id' => 'title',
                'class' => 'inputbox'
             )

    ));

        $this->getElement('title')->addFilter(array(new AlnumDashesUnderscore(), array(1)));

}

我有其他课程" SF _"成功加载的命名空间,从控制器中调用它们没有问题。

1 个答案:

答案 0 :(得分:0)

该类定义为SF_Filter_AlnumDashes,但您尝试创建AlnumDashesUnderscore的新实例。这些类名需要匹配:

$this->getElement('title')->addFilter(array(new SF_Filter_AlnumDashes(), array(1)));