我有一個很奇怪的問題。當使用我的開發環境(在Ubuntu Guest上共享Windows主機)時,以下代碼可以正常工作。但是,如果在Linux服務器上,或者即使將文件複製到Ubuntu Guest虛擬機,但是本機方向(未與主機共享),代碼也會失敗。我收到的錯誤是:ZF2表單集合Zend Form FormElementManager :: get無法取得或創建一個實例
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',
),
));
}
}
我一直對這個整天,一直沒能拿出一個解決方案我甚至建立了一些額外的環境,並確保配置相同。任何建議將非常感激。
該文件位於何處? – 2014-11-09 11:22:43
在路徑/module/RA/src/RA/Restriction/Form/ValueFieldset.php – 2014-11-09 14:04:45
我終於能夠解決這個問題。看起來,在某些環境下,它不喜歡字段集在子目錄中。我能夠將我的字段集移動到/ RA/src/RA/Form/ValueFieldset,現在一切都很開心。 – 2014-11-09 17:47:49