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
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 に答える
0

QueryBuilder を使用して正しい選択を設定する

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

プロパティに適切な名前を付けてみてください。したがって、directionId -> 方向

于 2013-11-14T08:39:11.600 に答える