我有与 oneToMany 关系相关的“汽车”和“预订”实体:<?phpnamespace App\Entity; /** * @ORM\Entity(repositoryClass=CarRepository::class) * @UniqueEntity("registrationNumber") * @Vich\Uploadable */class Car{ /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string", length=255) * @Assert\Length(min=3, max=9) */ private $registrationNumber; /** * @ORM\OneToMany(targetEntity=Booking::class, mappedBy="car") */ private $bookings;/** * @return Collection|Booking[] */ public function getBookings(): Collection { return $this->bookings; }}public function book(Request $request, Car $car) { $booked_car = $car; $booking = new Booking(); $booking->setCar($booked_car); $form = $this->createForm(BookingType::class, $booking); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()){ $booking = $form->getData(); $this->em->persist($booking); $this->em->flush(); $this->addFlash('success', 'Démande envoyée avec success'); return $this->redirectToRoute('car.index'); } $this->addFlash('error', 'une erreur dans le système'); return $this->render('booking/book.html.twig',[ 'booking' => $booking, 'form' => $form->createView() ]); }当在twig或列出所有预订的索引页面中转储 $booking 变量时,预订对象中的每个汽车对象只有 id 字段,其他字段均为 null !我希望获得与预订相关的汽车对象的每个字段的完整数据,以在树枝视图中显示它!在方法书中,我获取了随请求发送的 id 变量,并将其放入 setCar 方法中,我是否应该创建一个查询来搜索 byId 并一一影响每个属性!
1 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
这种关系默认是延迟加载的。因此,由于您没有调用汽车对象的任何 getter,因此您只显示了 id(因为它也存储在预订对象中)。但这仅在转储的上下文中,一旦您尝试使用汽车的 getter(getId 除外),它就会加载其余部分。
如果您确实需要将整个汽车数据与预订数据一起加载,则可以fetch="EAGER"
在 ManyToOne 关系中使用,但您需要一个有效的理由才能这样做。
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报
0/150
提交
取消