我的自定义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 _"成功加载的命名空间,从控制器中调用它们没有问题。
答案 0 :(得分:0)
该类定义为SF_Filter_AlnumDashes
,但您尝试创建AlnumDashesUnderscore
的新实例。这些类名需要匹配:
$this->getElement('title')->addFilter(array(new SF_Filter_AlnumDashes(), array(1)));