【发布时间】:2025-12-14 10:50:01
【问题描述】:
我在这两个实体之间有一个双向多对多:
位置
/**
* Position
*
* @ORM\Table(name="applypie_position")
* @ORM\Entity(repositoryClass="Applypie\Bundle\PositionBundle\Entity\PositionRepository")
*/
class Position
{
const IS_ACTIVE = true;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="Applypie\Bundle\UserBundle\Entity\Applicant", mappedBy="bookmarks")
*/
private $bookmarkedApplicants;
申请人
/**
* Applicant
*
* @ORM\Table(name="applypie_applicant")
* @ORM\Entity
*/
class Applicant
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="Applypie\Bundle\PositionBundle\Entity\Position", inversedBy="bookmarkedApplicants")
* @ORM\JoinTable(name="applypie_user_job_bookmarks",
* joinColumns={@ORM\JoinColumn(name="applicant_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="position_id", referencedColumnName="id")}
* )
*/
private $bookmarks;
我的问题是:在通过 ID 轻松显示职位的 PositionControllers 操作中,我需要知道想要查看该职位的当前申请人是否有当前职位的书签。
我首先想到的是使用 $applicant->getBookmarks() 获取所有书签并在 forarch 中运行,根据当前位置检查所有申请人的书签,但我认为必须有更简单的方法?
谢谢
【问题讨论】:
标签: symfony doctrine-orm many-to-many