【发布时间】:2012-11-17 14:42:46
【问题描述】:
我有一个类如下:
/** @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 的所有者,它只是一个对象而不是数组。我的网络服务总是说:
{"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();
}
}
【问题讨论】:
-
你刚刚在你的实体上调用了 json_encode 吗?
-
是的,类似于 json_encode。这是第一个问题。但是“未设置”描述属性的另一个问题仍未解决......
-
你的代码没有问题,试着用xdebug观察代码发生了什么
标签: php symfony doctrine doctrine-orm