Doctrine不会加入两列 - 使用Symfony2和Doctrine

时间:2016-06-06 13:14:46

标签: php symfony doctrine-orm doctrine

我有两张桌子:

帖子

id |标题|内容|用户

用户

id |名称

我想在Posts集合中拥有用户名。我在这做错了什么?我是否必须编写自定义查询才能执行此操作?

现在我在帖子集合中获得了用户的ID。

class Posts
{

...

/**
 * @ORM\Column(name="user", type="text", length=250)
 * @ORM\ManyToOne(targetEntity="Users", inversedBy="posts")
 * @ORM\JoinColumn(name="user", referencedColumnName="id")
*/
protected $user;

...

用户类:

class Users
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="text", length=250)
     */
    public $name;
    /**
    * @ORM\OneToMany(targetEntity="Posts", mappedBy="user")
    */
    protected $posts;

   ...

1 个答案:

答案 0 :(得分:2)

您的$ user关系注释中有错误,您不能将列设为常规@ORM \ Column和@ORM \ JoinColumn,请尝试:

/**
 * @ORM\ManyToOne(targetEntity="Users", inversedBy="posts")
 * @ORM\JoinColumn(name="user", referencedColumnName="id")
 */
protected $user;

这将为您提供实体(referencedColumnName必须是主键),然后您可以执行$ user-> getName();