加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – doctrine2关联未初始化

发布时间:2021-07-06 05:19:18 所属栏目:大数据 来源: https://www.jb51.cc
导读:我有一个类如下: /** @Entity **/class orgGroup{ //id and stuff... /** * @Column(type="string") **/ private $name; /** * @Column(type="string", nullable=true) **/ private $description; /** * @ManyToOne(targetEntity="orgGroupType", inversedB

我有一个类如下:

/** @Entity **/
class orgGroup{

    //id and stuff...

    /**
     * @Column(type="string")
     **/
    private $name;

    /**
     * @Column(type="string", nullable=true)
     **/
    private $description;

    /**
     * @ManyToOne(targetEntity="orgGroupType", inversedBy="_orgGroups")
     * @JoinColumn(name="_orgGroupType")
     **/

    private $_orgGroupType;

    //...
}

但是当我通过我的数据库加载此对象时

$groups = $em->getRepository("orgGroup")->findAll();

我只是正确地得到了名称而不是_orgGroupType …我不知道为什么… OrgGroup是orgGroupType的所有者,它只是一个对象而不是数组.我的Web服务总是说:

{"error":[],"warning":[],"message":[],"data":[{"name":"AdministratorGroup","description":null,"_orgGroupType":{"__ isInitialized __":false}}]}

结果是:

"name":"AdministratorGroup",
"description":null,
"_orgGroupType":{"__ isInitialized __":false}

但应该是:

"name":"AdministratorGroup",
"description":"some description",
"_orgGroupType":{name:"test"}

所以有2个错误……我不明白为什么.
所有数据都在数据库中正确设置.

有任何想法吗?

编辑:
这是我的orgGroupType -entity缺失的代码

/** @Entity **/
class orgGroupType {
    /**
     * @OneToMany(targetEntity="orgGroup", mappedBy="_orgGroupType")
     **/
    private $_orgGroups;

    public function __construct()
    {
        $this->_orgGroups = new ArrayCollection();
    }
}

解决方法:

这看起来像是一个懒惰加载问题.如何将对象中的数据导入Webservice答案?

如果你没有配置别的东西,Doctrine2是延迟加载的,这意味着你的$groups = $em-> getRepository(“orgGroup”) – > findAll();不会返回真正的orgGroup对象,而是返回Proxy对象(Doctrine Documentation).

这意味着$group对象将不会有它的描述或orgGroupType值,直到你调用$group-> getDescription()或$group-> getOrgGroupType()(然后Doctrine自动加载它们),所以你需要这样做之前将数据写入Web服务的JSON响应中.如果以某种方式在不使用getter方法的情况下遍历对象属性,它将无法工作.

我希望那是问题:)

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读