2017-05-09 125 views
0

我讀了一些有關單證ORM & Symfony的,但英語不是我的母語,也許我錯過了什麼:) 我只會讓&眼鏡預訂之間的連接 我有這樣的錯誤:問題與相關實體

[Semantical Error] line 0, col 70 near 'r WHERE a.id': Error: Class AppBundle\Entity\Reservation has no association named Reservation

我的實體

class Reservation 
{ 
    /** 
    * @ORM\ManytoOne (targetEntity="AppBundle\Entity\Spectacles", inversedBy="id") 
    * @ORM\JoinColumn(name="id", referencedColumnName="id") 
    */ 
    private $spectacle; 
} 



class Spectacles 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * @ORM\OneToMany(targetEntity="AppBundle\Entity\Reservation", mappedBy="spectacle") 
    * 
    */ 
    private $id; 
} 

我的倉庫

class ReservationRepository extends \Doctrine\ORM\EntityRepository 
{ 
    public function FindHowMunchRemains($id) 
    { 

     return $this->createQueryBuilder('a') 
       ->join('a.Reservation','r') 
       ->where('a.id=:id') 
       ->setParameter('id',$id) 
       ->getQuery() 
       ->getResult(); 


    } 
} 

編輯:

我'失去了ORM(我認爲這是我的大問題,用symfony ......我嘗試閱讀文檔,但沒有很明顯,也許這不是我的母語。

我想創建這個模式,你可以幫助我只在關鍵的源代碼的結果?

見下

SCHEMA DB

+0

你可以添加到問題你想實現什麼? – Akkusativobjekt

+1

看起來您正在通過執行'Reservation>(通過執行' - > join('a.Reservation','r')')到'Reservation'(作爲它的'ReservationRepository')。你可能想要加入'a.spectacle'或者做一些像'a.reservation',但是在'SpectacleRepository'中,取決於你想要做什麼。 –

+0

謝謝Jakub,我嘗試使用Spectacle Repository(這是合乎邏輯的),但我有一個像以前的錯誤一樣的錯誤。 [語義錯誤]第0行,第69列'r WHERE a.id'附近:錯誤:類AppBundle \ Entity \ Spectacles沒有關聯,名爲Reservation @Akkusativobjekt我試圖讓一個連接明白 –

回答

0

你的關係在這裏模式是無效的,應該是:

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

    /** 
    * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Spectacle", inversedBy="reservations") 
    */ 
    private $spectacle; 
} 



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

    /** 
    * @ORM\OneToMany(targetEntity="AppBundle\Entity\Reservation", mappedBy="spectacle") 
    */ 
    private $reservations; 
} 

在另一方面你的查詢是無效的。你究竟想要得到什麼?

+0

感謝您的支持,我添加了我想要的模式。我希望瞭解這項工作的方式; / –