使用 Symfony 更新命令中的实体
Updating an Entity in Command with Symfony
我正在尝试使用 Symfony 3.4 为控制台创建一个命令。基本上是通过控制台添加角色。
首先,我通过ContainerAwareCommand
获得了教义
$em = $this->getContainer()->get('doctrine')->getManager();
然后像这样从输入中获取用户对象
$user = $em->getRepository(User::class)->findByUsername($username);
此行显示错误:
$user->setRole($role);
错误:
Error: Call to a member function setRole()
实体:
/**
* @ORM\Column(name="role", type="string", nullable=true)
*/
private $role;
.....
public function setRole($role)
{
$this->role = $role;
return $this;
}
...
回复您的评论:
在 ->setRole
调用之前通过 get_class()
查看 $user
进行调试导致它是一个数组的结论。
再次查看您的代码,您错误地使用了 findByUsername
(returns 一组结果)而不是 findOneByUsername
(returns 只有一个结果或 null
).
我正在尝试使用 Symfony 3.4 为控制台创建一个命令。基本上是通过控制台添加角色。
首先,我通过ContainerAwareCommand
$em = $this->getContainer()->get('doctrine')->getManager();
然后像这样从输入中获取用户对象
$user = $em->getRepository(User::class)->findByUsername($username);
此行显示错误:
$user->setRole($role);
错误:
Error: Call to a member function setRole()
实体:
/**
* @ORM\Column(name="role", type="string", nullable=true)
*/
private $role;
.....
public function setRole($role)
{
$this->role = $role;
return $this;
}
...
回复您的评论:
在 ->setRole
调用之前通过 get_class()
查看 $user
进行调试导致它是一个数组的结论。
再次查看您的代码,您错误地使用了 findByUsername
(returns 一组结果)而不是 findOneByUsername
(returns 只有一个结果或 null
).