像在QueryBuilder中一样的Symfony OneToOne学说

时间:2018-10-17 12:42:24

标签: symfony join doctrine-orm query-builder doctrine-query

像在symfony的查询生成器中一样不起作用,并显示错误!

这是我的查询

    $apiToken = $this->createQueryBuilder('ud')
        ->select('ud.apiToken')
        ->where('ud.user LIKE :userPhone')
        ->setParameter('userPhone','%'.$phone)
        ->getQuery()
        ->getResult();

    return $apiToken;

这是错误:

[Semantical Error] line 0, col 64 near 'user LIKE :u': Error: Invalid PathExpression. Must be a StateFieldPathExpression.

不能在查询生成器或有用的描述中找到任何扩展内容!

这是我的UserDevice实体:

class UserDevice implements UserInterface, \Serializable
{
    /**
     * @var int
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(name="notification_token",type="string", nullable=true)
     */
    private $notificationToken;

    /**
     * @ORM\Column(name="api_token" , type="string", unique=true, nullable=true)
     */
    private $apiToken;

    /**
     * @ORM\OneToOne(targetEntity="User", inversedBy="device", fetch="EAGER")
     * @ORM\JoinColumn(name="user_phone", referencedColumnName="phone")
     */
    private $user;

}

1 个答案:

答案 0 :(得分:1)

您应在表Doublejoin之间使用UserDevice查询。

User