如何在 html.twig 上显示链接到主要实体的另一个实体?
Posted
技术标签:
【中文标题】如何在 html.twig 上显示链接到主要实体的另一个实体?【英文标题】:How can I show another Entity linked to the main one on html.twig? 【发布时间】:2021-12-15 05:49:35 【问题描述】:我无法在另一个链接的 html.twig 上展示实体的属性。
基本上,一个实体叫 Cats,一个实体叫约会关系 ManyToOne(一只猫可以有多个约会,但一个约会只链接到一只猫)
猫实体:
/**
* @ORM\OneToMany(targetEntity=Appointment::class, mappedBy="cat", orphanRemoval=true)
*/
private $appointments;
/**
* @return Collection|Appointment[]
*/
public function getAppointments(): Collection
return $this->appointments;
public function addAppointment(Appointment $appointment): self
if (!$this->appointments->contains($appointment))
$this->appointments[] = $appointment;
$appointment->setCat($this);
return $this;
public function removeAppointment(Appointment $appointment): self
if ($this->appointments->removeElement($appointment))
// set the owning side to null (unless already changed)
if ($appointment->getCat() === $this)
$appointment->setCat(null);
return $this;
约会实体:
/**
* @ORM\ManyToOne(targetEntity=Cats::class, inversedBy="appointments", cascade="persist" )
* @ORM\JoinColumn(nullable=false)
*/
private $cat;
public function getCat(): ?Cats
return $this->cat;
public function setCat(?Cats $cat): self
$this->cat = $cat;
return $this;
这是我在 html.twig 中尝试为约会显示做的事情
% extends 'base.html.twig' %
% block title %Appointment% endblock %
% block main %
<h1>Appointment</h1>
% for cat in appointment.cats %
<div>
<td> appointment.cat_id </td>
</div>
% endfor %
所以我不断出错:
属性“cats”和方法“cats()”、“getcats()”/“iscats()”/“hascats()”或“__call()”都不存在且具有公共在“App\Entity\Appointment”类中访问。
你能帮忙吗?
【问题讨论】:
因为Appointment::$cat
是ManyToOne
,这意味着许多约会实体都有一个猫实体。在您的树枝中,% for cat in appointment.cats %
应该是 % set cat = appointment.cat %
,它转换为 Appointment::getCat(): Cat
,而 cat.appointments
转换为 Cat::getAppointments(): Collection
(一个 Cat 实体有许多约会实体)另外 apointment.cat_id
应该是 cat.id
它尝试将其更改为 % set cat =ointment.cat % 谢谢,我把我的代码改成了下面的代码,它工作了:
% for appointment in appointments %
% set cat = appointment.cat %
<div>
cat.id
</div>
% endfor %
【讨论】:
很高兴看到问题已经解决了。您可以考虑接受您的答案作为正确答案。以上是关于如何在 html.twig 上显示链接到主要实体的另一个实体?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony (Twig) 中包含可重用的小部件?
如何添加链接以在 SonataAdminBundle 中的关系字段上显示关系实体的操作