我尝试使用$ element-> addPrefixPath()来加载我的自定义验证器,但在我向ini文件中添加名称空间自动加载之前,它不会找到该类。
我认为addPrefixPath的重点只是加载表单的验证器类而不是整个应用程序。这是对的吗?
答案 0 :(得分:0)
这取决于您如何调用验证器并将其附加到元素:
作为一个例子:
$validator = new My_Validate_SomeValidator(array(
'option1' => 'value1',
'option2' => 'value2',
));
$element->addValidator($validator, true);
在这种情况下,您自己实例化验证器。因此,需要将My_
添加为自动加载器命名空间。
或者,使用“缩写”格式:
$element->addValidator(array('SomeValidator', array(
'option1' => 'value1',
'option2' => 'value2',
), true);
或
$element->setValidators(array(
array('EmailAddress', true),
array('SomeValidator', true, array(
'option1' => 'value1',
'option2' => 'value2',
),
));
在这种情况下,您只为元素提供缩写名称 - 'SomeValidator'
- 对于验证程序,隐式期望元素处理实例化。因此,有必要为元素提供一些命名空间/路径信息,以便它可以完成工作。