Symfony 4:登录不工作

时间:2018-05-30 11:12:43

标签: php symfony login token

我的问题跟踪是:

  

类型错误:参数4传递给

     

的Symfony \元器件\安全\核心\认证\令牌\ UsernamePasswordToken :: __构建体()   必须是类型数组,null给定,调用   ... \供应商\ symfony的\安全\核心\认证\供应商\ UserAuthenticationProvider.php   在第90行

事情是: - 当我尝试登录时,用户名和密码工作,而不是令牌,并且在我的实体中,令牌被定义为有人值守,作为数组

/** * @ORM\Column(type="array") */ private $role; 对于getter和setter来说同样如此,

所以,如果我理解得很好,他会尝试访问构造Authentication类的数组,这是角色,但他说该角色为null。 所以这是我的登录类:

$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();

if ($this->getUser()) {
        $this->addFlash('danger', 'You are already identified on TCELab');
        return $this->redirectToRoute("default");
    }

return $this->render('user/sign_in.html.twig', array(
        'last_username' => $lastUsername,
        'error' => $error,
    ));

正常这应该有用, 有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:0)

在您的用户实体中,为roles属性设置默认值。

/**
 * @ORM\Column(type="array")
 */
private $role = [];

public function __construct()
{
    $this->roles = [];
}