3
我有兩個文件。我正在嘗試查找與特定人員相關的所有論文。文件保存在他們的收藏中,並且正在創建從Person
到Paper
的參考,但不是相反。ODM:無法實現雙向關係
/** @ODM\Document */
class Paper
{
/**
* @ODM\Id
*/
protected $id;
/** @ODM\ReferenceOne(targetDocument="Person", cascade={"all"}, mappedBy="papers") */
protected $person;
public function __get($property) {
return $this->$property;
}
public function __set($property, $value) {
$this->$property = $value;
}
public function toArray() {
return get_object_vars($this);
}
}
/** @ODM\Document */
class Person
{
/**
* @ODM\Id
*/
protected $id;
/** @ODM\ReferenceMany(targetDocument="Paper", cascade={"all"}, inversedBy="person") */
protected $papers;
public function __get($property) {
return $this->$property;
}
public function __set($property, $value) {
$this->$property = $value;
}
public function toArray() {
return get_object_vars($this);
}
}
創建一個新的雙向參考
$person = $dm->getRespository('Person')->find($person_id);
$paper = new Paper();
$person->papers->add($paper);
$dm->persist($person);
$dm->flush();
在代碼後來,該查詢返回0的結果;難道它不應該歸還指定人員寫的文件嗎?
$papers = $dm->createQueryBuilder('Paper')
->field('person.$id')->equals(new \MongoId($person_id_as_string))
->getQuery()->execute();
,如果我想什麼來查詢的「紙張」的一面原始代碼示例是否可以訪問對Person的引用? –
你能改說這個嗎?我不確定你是什麼意思。 –