Обновление сущности в команде с Symfony - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь создать команду для консоли, используя 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 голосов
/ 04 мая 2018

В ответ на ваши комментарии:

Отладка, взглянув на $user через get_class() непосредственно перед вызовом ->setRole, который привел к выводу, что это массив.

Снова взглянув на свой код, вы по ошибке использовали findByUsername (который возвращает массив результатов) вместо findOneByUsername (который возвращает ровно один результат или null).

...