使用Symfony更新命令中的实体

时间:2018-05-04 10:15:16

标签: php symfony symfony-3.4 symfony-console

我正在尝试使用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;
    }
    ...

1 个答案:

答案 0 :(得分:2)

回应你的意见:

$user调用之前通过get_class()通过->setRole进行调试,结果显示它是一个数组。

再次查看您的代码,您错误地使用了findByUsername(返回结果数组)而不是findOneByUsername(只返回一个结果或null)。