doule6314 2017-09-28 17:48
浏览 53

Doctrine表单元素+ zf3错误messaje“没有设置对象管理器”

i used Doctrine for create a DoctrineModule\Form\Element\ObjectSelect in my forms. But shows me these error: "No object manager was set". I based in the guide of Doctrine Module . I carry a time searching but can´t find whats is wrong. The code:

The form:

<?php
//.....
use DoctrineModule\Persistence\ObjectManagerAwareInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Zend\Form\Form;

class SubRubroForm extends Form implements ObjectManagerAwareInterface
{
    private $value_submit;
    private $objectManager;

    public function __construct($value_submit)
    {
        $this->value_submit=$value_submit;
        // Define form name
        parent::__construct('SubRubro-form');

        // Set POST method for this form
        $this->setAttribute('method', 'post');
        $this->addElements();
        $this->addInputFilter();
        $this->init();            
    }

    public function init()
    {
        $this->add([
            'type' => 'DoctrineModule\Form\Element\ObjectSelect',
            'name' => 'rubro',
            'options' => [
                'object_manager' => $this->getObjectManager(),
                'target_class'   => 'Rubros\Entity\Rubro',
                'property'       => 'nombre',
            ],
        ]);
    }
// ... add others elements addElements(){} ....
// ... inputfilters ....
// ... set and get ObjectManager() interface methods...

}
  • 写回答

1条回答 默认 最新

  • dsf5989 2017-09-28 22:49
    关注

    Add the init() method from the father class Elements the ObjectManager loads fine.

    class SubRubroForm extends Form implements ObjectManagerAwareInterface { private $value_submit; private $objectManager;

    public function __construct($value_submit)
    {
        $this->value_submit=$value_submit;
        // Define form name
        parent::__construct('SubRubro-form');
    
        // Set POST method for this form
        $this->setAttribute('method', 'post');
        $this->addElements();
        $this->addInputFilter();
        $this->init();            
    }
    
    public function init()
    {
        $this->add([
            'type' => 'DoctrineModule\Form\Element\ObjectSelect',
            'name' => 'rubro',
            'options' => [
                'object_manager' => $this->getObjectManager(),
                'target_class'   => 'Rubros\Entity\Rubro',
                'property'       => 'nombre',
            ],
        ]);
        parent::init();
    }
    // ... add others elements addElements(){} ....
    // ... inputfilters ....
    // ... set and get ObjectManager() interface methods...
    
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度