我读了一些关于ORM& amp;的文件。 Symfony但英语不是我的母语,也许我想念一些东西:) 我将在预订和之间进行联接。眼镜 我有这个错误:
[语义错误]第0行,第70行附近' r WHERE a.id':错误:类AppBundle \ Entity \ Reservation没有名为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的重大问题......我试着阅读doc但是没有什么它很明显也许它不是我母亲语言。
我想创建这个架构,你能帮我解决一下只有KEY的源代码的结果吗?
请参阅
下的架构答案 0 :(得分: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;
}
另一方面,您的查询无效。究竟你想得到什么?