我正在尝试使用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;
}
...
答案 0 :(得分:2)
回应你的意见:
在$user
调用之前通过get_class()
通过->setRole
进行调试,结果显示它是一个数组。
再次查看您的代码,您错误地使用了findByUsername
(返回结果数组)而不是findOneByUsername
(只返回一个结果或null
)。