Laravel雄辩地将Input :: get值呈现为?

时间:2015-03-31 08:37:13

标签: php laravel-4 eloquent

我正在开发一个标准的用户登录系统,但这次真的很奇怪。

我从表单中获取输入,控制器应该验证。我使用Laravel的Input :: only()方法将输入保存到$ input变量中并保存所有内容,因为如果我使用var_dump($ input),它会显示一个具有I POST-ed的确切值的数组。但是当我执行Auth :: attempt($ input)时,即使数据库中存在匹配的记录,我什么也得不到。

我尝试转储查询,这就是我得到的:

string 'select * from `users` where `login` = ? limit 1' (length=47)

这就是我的方法:

public function store()
{
    $input = Input::only('login', 'password');

    // return $input;

    if (Auth::attempt($input)) {
        return View::make('pages.admin');
    }

    else{
        return 'nope!';
    }
}

我还尝试手动进行验证,将输入存储到各自的变量中并通过

选择它
$user = User::where('login', '=', $login)
    ->where('password', '=', $password)
    ->firstOrFail();

我转储的查询是

'select * from `users` where `login` = ? and `password` = ? limit 1'

我不知道它有什么问题,你遇到过类似的事吗?任何帮助将不胜感激。

修改

我通过进一步解决问题来确定问题。如果我对Auth :: attempt()传递的登录名和密码进行硬编码,那么问题是,某种程度上,Auth :: attempt()不会将输入选为字符串......或类似的东西

1 个答案:

答案 0 :(得分:0)

根据Laravel Docs Security

if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return Redirect::intended('dashboard');
}