为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony:如何从与 oneToMany 关系相关的实体中获取所有对象数据

Symfony:如何从与 oneToMany 关系相关的实体中获取所有对象数据

PHP
翻过高山走不出你 2024-01-19 14:55:50
我有与 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 关系中使用,但您需要一个有效的理由才能这样做。


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信