Php Laravel雄辩地呈现输入::获取值作为?
我正在开发一个标准的用户登录系统,但这次真的有点奇怪 我从一个表单中获取输入,控制器应该对此进行验证。我使用Laravel的input::only方法将输入保存到$input变量中,所有内容都被保存,因为如果我使用var_dump$input,它将显示一个数组,其中包含我发布的精确值。但是,当我执行Auth::attempt$input时,即使数据库中有匹配的记录,我也一无所获 我尝试转储查询,结果如下:Php Laravel雄辩地呈现输入::获取值作为?,php,laravel-4,eloquent,Php,Laravel 4,Eloquent,我正在开发一个标准的用户登录系统,但这次真的有点奇怪 我从一个表单中获取输入,控制器应该对此进行验证。我使用Laravel的input::only方法将输入保存到$input变量中,所有内容都被保存,因为如果我使用var_dump$input,它将显示一个数组,其中包含我发布的精确值。但是,当我执行Auth::attempt$input时,即使数据库中有匹配的记录,我也一无所获 我尝试转储查询,结果如下: string 'select * from `users` where `login` =
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::trunt传递的登录名和密码,那么问题是,不知何故Auth::trunt没有将输入作为字符串拾取……或者类似的内容根据Laravel Docs:
在您将$input传递给INTERT之前,您是否可以发布您的$input的var_export返回值?谢谢您的参与;这是var_导出:数组'login'=>'foobar','password'=>'foobar',@phobos2077 hmm…后面有一个逗号…这可能是问题所在吗?但如何摆脱它呢?o_OIs foobar密码正确吗?可能您的表单输入不正确。我100%确定,foobar是正确的密码…它不会将变量转换为eloquent生成的SQL查询,原因如下:/
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return Redirect::intended('dashboard');
}