Join 许多人加入,但不起作用
我的选择不起作用,为什么???我看到其他帖子,但没有解决这个问题 如果我像这样使用join:Join 许多人加入,但不起作用,join,doctrine-orm,many-to-many,Join,Doctrine Orm,Many To Many,我的选择不起作用,为什么???我看到其他帖子,但没有解决这个问题 如果我像这样使用join: ->join('User', 'u') 结果是4个值,我期望2 型号: class User { ... /** * @ManyToMany(targetEntity="UserGroup", mappedBy="users", cascade={"all"}) * @JoinTable(name="users_user_group") */
->join('User', 'u')
结果是4个值,我期望2
型号:
class User
{
...
/**
* @ManyToMany(targetEntity="UserGroup", mappedBy="users", cascade={"all"})
* @JoinTable(name="users_user_group")
*/
protected $userGroups;
及
QueryBuilder:
$queryBuilder = $this->getController()->getRepository()
->createQueryBuilder('ug')
->select('ug, u')
->leftJoin('User', 'u', 'WITH', 'ug.id = u.userGroups')
->andWhere('u.id IN (:ids)')
->setParameter('ids', $usersId);
我收到这个消息:
[Semantical Error] line 0, col 63 near 'userGroups WHERE': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
这种SQL有效,为什么DQL不行
SELECT
*
FROM
users_user_group ug
LEFT JOIN
user u ON ug.user_id = u.id
WHERE
ug.user_id IN (1 , 2)
我改变了这一行:
->leftJoin('User', 'u', 'WITH', 'ug.id = u.userGroups')
对于it:
->join('User', 'u', 'WITH', 'ug.id = u.id')
\o/
->join('User', 'u', 'WITH', 'ug.id = u.id')