我正在尝试从我的laravel网站禁用密码验证系统。我想仅使用他们的名字和姓氏登录我的用户。形式明智,注册明智和数据库明智,密码字段已被完全删除。但在登录控制器中,我遇到了一些问题,它似乎无法正常工作。这是我的代码:
public function login(Request $request)
{
$first_name = $request->first_name;
$last_name = $request->last_name;
$user = User::where(['first_name' => $first_name, 'last_name' => $last_name])->first();
if (!$user) {
return redirect()->back()->withInput($request->only('first_name', 'last_name'))->withErrors([
'first_name' => 'We could not find you in our database, if you think this is a mistake kindly contact the site administrators',
]);
}
Auth::login($user);
return redirecte('/');
}
在上面的代码中,我收到错误消息
我们无法在我们的数据库中找到您,如果您认为这是一个错误,请联系网站管理员
无论我在表单中插入什么信息(true为false)。
答案 0 :(得分:0)
首先,您必须检查first_name
和last_name
是否与数据库匹配。
$user = User::where(['first_name' => $first_name, 'last_name' => $last_name])->first()
您在上面的行中遇到了问题。
public function login(Request $request)
{
$first_name = $request->first_name;
$last_name = $request->last_name;
$user = User::where(['first_name' => $first_name, 'last_name' => $last_name])->first();
if (!$user) {
return redirect()->back()->withInput($request->only('first_name', 'last_name'))->withErrors([
'first_name' => 'We could not find you in our database, if you think this is a mistake kindly contact the site administrators',
]);
}
Auth::loginUsingId($user->id);
return redirecte('/');
}
答案 1 :(得分:0)
是的,谢谢@laravel levaral回答,但我发现了问题。 我将引用laracasts的用户
如果要将多个where子句组合到一个where()中,则每个子句都需要在数组中自己的数组。你正在发送一个阵列。您还使用了=>,这是不正确的。每个where语句的参数用逗号分隔。
所以谁想要看到新的工作代码:
public function login(Request $request)
{
$first_name = $request->first_name;
$last_name = $request->last_name;
$user = User::where('first_name', $first_name)
->where('last_name', $last_name)
->first();
if (!$user) {
return redirect()->back()->withInput($request->only('first_name', 'last_name'))->withErrors([
'first_name' => 'We could not find you in our database, if you think this is a mistake kindly contact the site administrators',
]);
}
Auth::login($user);
return redirect('/');
}