0

我有实体:

class RegionalPartner
{
    /**
     * @var integer
     *
     * @ORM\Column(name="direction_id", type="integer")
     * @ORM\OneToOne(targetEntity="Direction")
     * @ORM\JoinColumn(name="direction_id", referencedColumnName="id")
     */
    private $directionId;

...

以及关系的目标:

class Direction
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
.....

我有一个存储库:

    class RegionalPartnerRepository extends EntityRepository
{
    public function findAllWithNames()
    {
        $query = $this->getEntityManager()
            ->createQuery('
                SELECT 
                    r
                FROM 
                    AstRegionalPartnerBundle:RegionalPartner r 
                JOIN 
                    r.directionId d
                ');
            //->setParameters($params);

        return $query->getResult();

有一个错误:

[Semantical Error] line 0, col 108 near 'd': Error: Class Ast\RegionalPartnerBundle\Entity\RegionalPartner has no association named directionId

我应该怎么做才能制作正确的关系代码(需要将“方向”的名称获取到“RegionalPartner”实体)?

该 ORM 中连接的文档在哪里?

4

2 回答 2

0

使用 QueryBuilder 并设置正确的选择

$this->createQueryBuilder('r')
     ->select('d.name')
     ->innerJoin('r.directionId', 'd')

尝试为您的属性命名。所以 directionId -> 方向

于 2013-11-14T08:39:11.600 回答
0
class RegionalPartner
{
    /**
     * @var integer
     *
     * @ORM\OneToOne(targetEntity="Direction")
     * @ORM\JoinColumn(name="direction_id", referencedColumnName="id")
     */
    private $directionId;

...

删除部分注释:

* @ORM\Column(name="direction_id", type="integer")
于 2013-11-15T06:09:10.967 回答