Symfony - 属于同一实体
Symfony - belongsTo in same entity
我想在来自同一个 table 的两个实体字段之间建立直接关系。
我的想法是添加我的实体 manager_id,它将指向用户 table 中的另一个用户(我尝试使用 OneToOne。
当用户调用操作时,user_id 将消息发送给谁,例如
$user->getManager()->getId();
错误日志显示:
未找到字段 ID 的映射。
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="App\Entity\User",
mappedBy="id")
*/
private $manager;
创建这种关系的简单方法是使用无向关系类型。它的代码如下所示:
class User
{
/**
* @var int
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="App\Entity\User")
*/
private $manager;
}
现在你可以做:
/** @var User $user */
$managerId = $user->getManager()->getId();
希望对您有所帮助。
PS。我添加了一些@var 文档块用于提示。
我想在来自同一个 table 的两个实体字段之间建立直接关系。
我的想法是添加我的实体 manager_id,它将指向用户 table 中的另一个用户(我尝试使用 OneToOne。
当用户调用操作时,user_id 将消息发送给谁,例如
$user->getManager()->getId();
错误日志显示:
未找到字段 ID 的映射。
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="App\Entity\User",
mappedBy="id")
*/
private $manager;
创建这种关系的简单方法是使用无向关系类型。它的代码如下所示:
class User
{
/**
* @var int
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="App\Entity\User")
*/
private $manager;
}
现在你可以做:
/** @var User $user */
$managerId = $user->getManager()->getId();
希望对您有所帮助。
PS。我添加了一些@var 文档块用于提示。