在 aend 框架中将 sql 转换为学说 orm

Posted

技术标签:

【中文标题】在 aend 框架中将 sql 转换为学说 orm【英文标题】:Convert sql to doctrine orm in aend framework 【发布时间】:2015-11-06 07:04:38 【问题描述】:

我的查询如下所示:

SELECT * 
FROM mydb.users
left join mydb.job on
users.id = job.userid;

现在我在查询数据库中使用教义 orm,但我是新手。 到目前为止我所做的如下,但它没有按预期工作。

$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();

$qb->select(array('a', 'c'))
        ->from('Admin\Entity\User', 'a')
        ->leftJoin('a.id', 'c');

$query = $qb->getQuery();
$results = $query->getResult();

return $results;

【问题讨论】:

【参考方案1】:

你不需要 from 子句和数组 from 子句 select

$em = $this->getEntityManager();
$qb = $em->createQueryBuilder('u');

$qb->select('u', 'j')
   ->leftJoin('u.jobs', 'j')

$query = $qb->getQuery();
$results = $query->getResult();

return $results;

您的用户实体必须包含该属性的“一对多”作业。

显示 SQL 输出的技巧:

var_dump($qb->getQuery()->getSQL());

【讨论】:

以上是关于在 aend 框架中将 sql 转换为学说 orm的主要内容,如果未能解决你的问题,请参考以下文章

将学说实体布尔字段设置为 0 而不是 null

如何将这个简单的 sql 查询转换为学说 querybuilder

将原始 SQL 与 Doctrine 一起使用

如何在 Python 中将(有些复杂的)Postgresql 语句转换为 SQLAlchemy ORM?

使用 zend 框架安装和使用学说

学说减慢了表现