我的数据库中有两个表:user
和media_contact
。 media_contact
表格有user_id
,因此,显然,我的目的是能够根据用户选择媒体联系人。
我遇到的问题是失败了:
// VNN/PressboxBundle/Entity/User.php
// $this in this case is a User object with id 26
$customContacts = $em->getRepository('VNNPressboxBundle:MediaContact')->findByUser($this);
这对我没有任何帮助。 $customContacts
是空的。但是:
mysql> select * from media_contact where user_id=26;
+-----+-------------+-----------------------+---------------+---------+
| id | name | email | media_area_id | user_id |
+-----+-------------+-----------------------+---------------+---------+
| 177 | Jason Swett | jason.swett@gmail.com | NULL | 26 |
| 183 | Sam | sam@sam.com | NULL | 26 |
+-----+-------------+-----------------------+---------------+---------+
2 rows in set (0.00 sec)
它应该真正返回两个对象。我真的不明白为什么会这样。
以下是我的注释:
// User.php
/**
* @ORM\OneToMany(targetEntity="MediaContact", mappedBy="user")
*/
private $mediaContacts;
-
// MediaContact.php
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="mediaContacts")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
可能出现什么问题?
答案 0 :(得分:1)
您必须使用$this->getId()
代替$this
才能使其正常工作:
$customContacts = $em->getRepository('VNNPressboxBundle:MediaContact')->findByUser($this->getId());