【发布时间】:2014-12-20 17:19:19
【问题描述】:
我有两种实体类型:\Model\News 和 \Model\News\Category。
\Model\News:(没有几个字段)
namespace Model;
/**
* @Entity
* @Table(name="news")
*/
class News extends \Framework\Model {
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*/
protected $id;
/**
* @ManyToOne(targetEntity="\Model\User", inversedBy="news")
*/
protected $author;
/**
* @ManyToOne(targetEntity="\Model\News\Category", inversedBy="news")
*/
protected $category;
}
\Model\News\Category:
namespace Model\News;
/**
* @Entity
* @Table(name="news_category")
*/
class Category extends \Framework\Model {
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*/
protected $id;
/**
* @Column(type="string", length=50, unique=TRUE)
*/
protected $name;
/**
* @OneToMany(targetEntity="\Model\News", mappedBy="category")
*/
protected $news;
/**
* Constructor
*/
public function __construct() {
parent::__construct();
$this->news = new \Doctrine\Common\Collections\ArrayCollection;
}
}
来自\Model\News的表格数据:
id | category_id | author_id
------------------------------- ...
4 | 1 | NULL
\Model\News\Category 中的表格数据:
id | name
---------------
1 | General
---------------
2 | Other
当我使用此特定代码加载 News 类型实体并使用 \Kint 类进行转储时:
$sId = '4';
$sModel = 'Model\News';
$oObject = $entity_manager->find($sModel, $sId);
d($oObject);
它返回给我这个:
我的问题是,为什么 $oObject 变量中的 category 属性具有 NULL 值,尽管数据库中存在 id = 1 的类别?
更新:
在上面的代码之后,我想单独加载这个类别(ID=1)。一样。但是...当我加载具有其他 ID(例如 2)的类别时,它的加载没有问题:
$oObject2 = $entity_manager->('\Model\News\Category', '2');
我现在不知道该怎么办......
【问题讨论】:
标签: php doctrine-orm doctrine