因此,我正在新闻门户上工作,我有两个实体:
在新闻实体中,名为“源”的字段是源实体的ID;因此,发布新闻时需要访问“源标题”。我知道做事关系ManyToOne是有可能的。但是我不想这样做,因为在某些情况下它使我的生活更加艰难。是否有可能在Entity中执行查询?喜欢 :
public function getSourceTitle()
{
$query = ...;
return $query->getScalarResult();
}
我可以做吗 ?还是还有另一种可能性?
查询内部实体类不是一个好习惯。实体类应该只包含字段,设置器和获取器,而没有其他内容。那么,如果您要查询数据库,您打算如何做呢?注入EntityManager?好的,如果您确实想要这样做,则可以像下面这样简单地进行:
...
private $entityManager;
public function __construct(EntityManagerINterface $entityManager)
{
$this->entityManager = $entityManager;
}
...
public function getSourceTitle()
{
$sourceRepository = $this->entityManager->getRepository('VendorMyBundle:Source');
$queryBuilder = $sourceRepository->createQueryBuilder('s')
->....
return $queryBuilder->getScalarResult();
}
并new MyEntity($entityManager)
在实体创建时使用它。.但是,您应该知道,这被认为是非常糟糕的做法...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句