我有两张桌子:
帖子
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;
...
答案 0 :(得分:2)
您的$ user关系注释中有错误,您不能将列设为常规@ORM \ Column和@ORM \ JoinColumn,请尝试:
/**
* @ORM\ManyToOne(targetEntity="Users", inversedBy="posts")
* @ORM\JoinColumn(name="user", referencedColumnName="id")
*/
protected $user;
这将为您提供实体(referencedColumnName必须是主键),然后您可以执行$ user-> getName();