Laravel记得我,检查复选框输入

时间:2014-12-25 01:31:35

标签: php laravel

与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方法的任何指导?我确定我可以进行基本检查以查看值,然后设置一个真/假的变量并将其放入方法中。但我确定必须有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您的控制器应该是这样的记忆标记变量:

       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') }}

我觉得应该有用..让我知道如果你有任何麻烦。感谢