拉拉维尔记住我,检查复选框输入


Laravel remeber me, check for checkbox input

与Laravel合作,需要一个解决方案。

记住我函数的文档指出,需要将"true"传递到 Auth 方法中才能使其工作。

根据文档:

if (Auth::attempt($userData, true))
{
  return Redirect::to('/');
}

这有效,但我需要检查用户是否已选择要记住其帐户。

不确定在哪里,但有一段时间我有这个作为解决方案:

if (Auth::attempt($userData, ($data['rememberme'] == 'on') ? true : false))
{
    return Redirect::to('/');
}

这不起作用,因为它没有在数据库中设置记住我的令牌。

如果选中该复选框,有关如何将 true 传递到 Auth 方法的任何指导?我确定我可以做一个基本的检查以查看值,然后设置一个 true/false 变量并将其放入方法中。但我确定一定有更好的方法吗?

您的控制器应该像这样,带有一个记住令牌变量:

       public function postSignin()
      { 
    $remember = (Input::has('remember_me')) ? true : false;
    if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password'), 'active'=>0))) {
        return Redirect::to('users/signin')
            ->with('message','Please activate your account to log in');
    }
    if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password'), 'active'=>1),$remember)) {
        return Redirect::to('/')
            ->with('message','Thanks for signing in');
    }

    return Redirect::to('users/signin')
        ->with('message','Your Email/Password combination was incorrect');
}

将复选框输入放入表单中,作为

{{ Form::checkbox('remember_me') }}

我认为它应该有效..如果您有任何问题,请告诉我。谢谢