ZF2表单集合Zend \ Form \ FormElementManager :: get无法获取或创建实例

时间:2014-11-09 08:30:10

标签: php zend-framework2 zend-form zend-form-element

我有一个非常奇怪的问题。使用我的开发环境(在Ubuntu Guest上共享的Windows主机)时,以下代码可以正常工作。但是,当在Linux服务器上,或者即使我将文件复制到Ubuntu Guest但是本机方向(不是从主机共享)时,代码也会失败。我收到的错误是:

Zend\Form\FormElementManager::get was unable to fetch or create an instance for RA\Restriction\Form\ValueFieldset

所以问题是它永远无法找到文件。堆栈跟踪在

处死亡
/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php(103): Zend\ServiceManager\ServiceManager->get('RA...', true)

这是我的表单文件的样子

namespace RA\Restriction\Form;

use Zend\Form\Form;
use Zend\Form\Element;
use Zend\InputFilter\InputFilter;

class RestrictionValueForm extends Form
{
    public function __construct($name = null)
    {
    // we want to ignore the name passed
    parent::__construct('attribute');
    $this->setAttribute('method', 'post')
        ->setInputFilter(new InputFilter());;
    $this->add(array(
        'name' => 'restriction_id',
        'attributes' => array(
            'type'  => 'hidden',
            'id' => 'restriction_id',
        ),
    ));
    $this->add(array(
        'type' => 'collection',
        'name' => 'value_name',
        'options' => array(
            'count' => 2,
            'should_create_template' => true,
            'template_placeholder' => '__placeholder__',
            'label' => '',
            'target_element' => array(
                'type' => 'RA\Restriction\Form\ValueFieldset',
            ),
        ),
    ));

    $this->add(array(
        'name' => 'submit',
        'attributes' => array(
            'type'  => 'submit',
            'class' => 'btn btn-primary mar-right5',
            'value' => 'Save',
            'id' => 'submitbutton',
        ),
    ));
    $this->add(array(
        'name' => 'cancel',
        'attributes' => array(
            'type'  => 'button',
            'class' => 'btn',
            'value' => 'Cancel',
            'id' => 'cancel',
        ),
    ));
    }
}

我整天都在努力工作,并且能够提出一个解决方案,我甚至建立了一些额外的环境,并确保配置相同。任何建议将非常感激。

2 个答案:

答案 0 :(得分:1)

在我的情况下,问题是区分大小写。 Windows在目录结构中并不区分大小写,一般情况下,但是区分大小写。

答案 1 :(得分:0)

我终于能够解决问题了。看起来在某些环境中它不喜欢字段集在子目录中。我能够将我的fieldsset移动到/ RA / src / RA / Form / ValueFieldset,现在一切都很开心。