我有一个实体 Rental,它连接实体 Room,实体 Room 连接和实体 Bed。如何归档以通过一个查询加载所有内容?实际上,使用以下代码,实体 Bed 将被延迟加载。所以我有不止一个查询。
$qb->select('Rental', 'RentalRooms')
->from('Rental\Entity\Rental', 'Rental')
->leftJoin('Rental.rooms', 'RentalRooms')
->where($qb->expr()->eq('Rental.slug', ':slug'))
->setParameter('slug', $slug);
我试过这样:
$qb->select('Rental', 'RentalRooms', RentalBeds)
->from('Rental\Entity\Rental', 'Rental')
->leftJoin('Rental.rooms', 'RentalRooms')
->leftJoin('RentalRooms.beds', 'RentalBeds')
->where($qb->expr()->eq('Rental.slug', ':slug'))
->setParameter('slug', $slug);
但是我得到一个 Doctrine\ORM\Query\QueryException “[语义错误]第 0 行,第 180 列靠近 'RentalBeds WITH':错误:类 Rental\Entity\Rental 没有名为 Beds 的关联”。
异常(exception)是正确的,因为实体 Rental 没有名为 Beds 的关联。房间实体具有名为“床”的关联。
最佳答案
我找到了解决办法! :D 只需添加 ->addSelect('RentalBeds')
$qb->select('Rental', 'RentalRooms', RentalBeds)
->from('Rental\Entity\Rental', 'Rental')
->leftJoin('Rental.rooms', 'RentalRooms')
->leftJoin('RentalRooms.beds', 'RentalBeds')
**->addSelect('RentalBeds')**
->where($qb->expr()->eq('Rental.slug', ':slug'))
->setParameter('slug', $slug);
关于mysql - Doctrine 2 加入实体 加入实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27208586/