gpt4 book ai didi

symfony - Doctrine2 多对一双向关系不起作用

转载 作者:行者123 更新时间:2023-12-01 07:42:32 25 4
gpt4 key购买 nike

我正在尝试在 2 个实体之间进行双向关联。问题是从 Book 我可以得到他们的所有者,但是从 Owner 我不能得到这些书。

这是代码的重要部分:

Acme\BookBundle\Entity\Book;

/**
* @ORM\ManyToOne(targetEntity="Acme\UserBundle\Entity\User", inversedBy="owned_books")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
*/
protected $owner;

/**
* Get owner
*
* @return Acme\UserBundle\Entity\User
*/
public function getOwner()
{
return $this->owner;
}

Acme\UserBundle\Entity\User;
/**
* @ORM\OneToMany(targetEntity="Acme\BookBundle\Entity\Book", mappedBy="owner")
*/
protected $owned_books;

public function __construct()
{
$this->owned_books = new \Doctrine\Common\Collections\ArrayCollection();
}

/**
* Get owned_books
*
* @return Doctrine\Common\Collections\Collection
*/
public function getOwnedBooks()
{
return $this->owned_books;
}

然后,获取数据:

此作品
$book = $this->getDoctrine()
->getRepository('BookBundle:Book')
->find(1);

$owner = $book->getOwner()->getFirstName();

这不起作用 (给出 fatal error :调用未定义的方法 Doctrine\ORM\PersistentCollection::getName() )
$owner = $this->getDoctrine()
->getRepository('UserBundle:User')
->find(1);

$books = $owner->getOwnedBooks()->getName();

有谁知道我做错了什么?先感谢您。

最佳答案

$owner->getOwnedBooks() 是 Owners 的集合。尝试使用 foreach 循环遍历集合。

$books = $owner->getOwnedBooks();
foreach ($books as $book) {
echo $book->getName() . ' <br/>';
}

关于symfony - Doctrine2 多对一双向关系不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com