我在教义2中的多对多关系有问题。即使关系存在,关系也不会持续存在。如果我在两个 foreach 循环中检查持久,则会返回正确的对象。
第一个类是文档。
class Document extends BaseEntity
{
....
/**
* @ORMManyToMany(targetEntity="Job", mappedBy="documents", cascade={"all"})
* @ORMJoinTable(name="job_document")
*/
protected $jobs;
....
第二类是约伯
class Job extends BaseEntity
{
....
/**
* @ORMManyToMany(targetEntity="Document", inversedBy="jobs", cascade={"all"})
* @ORMJoinTable(name="job_document")
*/
protected $documents;
....
在我的控制器中,我执行以下操作:
$job->addDocument($document);
$document->addJob($job);
$em->persist($job);
$em->flush();
添加函数工作正常。当我在我这样做之后循环浏览对象时,我可以看到它。
在我看来
,你只尝试更新关系的反面,而不是拥有的一面。
正如教义文件中指出的:
仅对关联的反侧所做的更改将被忽略。 确保更新双向关联的两端(或 从教义的角度来看,最少是拥有方)