【发布时间】:2011-03-09 01:15:05
【问题描述】:
我无法让 Zend 自动加载自定义表单元素类。我完全按照 Marcin 描述的 here 所做的事情(除了我的课程以 'Zend' 而不是 'my' 开头,但我收到了这个错误:
Warning: include_once(Zend\Form\Element\Div.php) [function.include-once]: failed to open stream: No such file or directory
我在forms\elements\ 里面有Zend_Form_Element_Div,在views\helpers\ 里面有Zend_View_Helper_FormDiv
基本上,错误消息中的每个文件夹都缺少一个's',正确的路径是Zend\Forms\Elements\Div.php
我的引导程序中也有这个,虽然我不确定是否有必要,但我也将它用于我的表单和模型文件夹(以及其他一些,但我认为不需要发布它们全部):
<?php
$resourceLoader->addResourceTypes(array(
'model' => array(
'namespace' => 'Model',
'path' => 'models'
),
'element' => array(
'namespace' => 'Element',
'path' => 'elements'
),
'form' => array(
'namespace' => 'Form',
'path' => 'forms'
)
));
?>
(实际上还有其他方法可以自动加载吗?而不是声明每个文件夹?)
更新:
- application/forms/elements/Div.php 中的Element_Div
- 在我的表单 init() 方法中:
$this->addElementPrefixPath('Element_', APPLICATION_PATH . '/forms/elements'); - 我得到的错误:
Fatal error: Class 'Element_Div' not found in C:\xampplite\htdocs\code\application\forms\PostForm.php on line 63
【问题讨论】:
-
如果您将元素命名为 Zend_Form_Element_Div,Zend 自动加载器将假定它位于 library\Zend\Form\Element\ 文件夹中。因此,您会收到此错误。所以你可以试着把它放在那里。
标签: php zend-framework bootloader zend-form-element