我刚接触Laravel,使用 auth 选项时遇到了一些问题。 我正在尝试在另一个自定义表上使用auth。我已经设置了到新表的连接,但是Laravel仍在搜索电子邮件字段。在我的表中有“登录”字段。我不知道在哪里更改,有人可以帮忙吗?
我正在使用Laravel 5.6
我创建了新模型,并将受保护的$table
添加到用户(默认)模型中。
那是我的错误:
SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'email'
答案 0 :(得分:1)
在您的 <intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
</intent-filter>
loginController
为此public function login(LoginRequest $request)
{
$user = User::select('id')->where('user_name', $request->user_name)->where('pin', $request->pin)->first();
if ($user) {
Auth::loginUsingId($user->id);
return redirect()->intended('/dashboard');
} else {
return redirect()->back()->with('app_warning', 'Credenciales Invalidas!')->withInput();
}
}
上的字段更改此user->name and pin
答案 1 :(得分:0)
您可以覆盖文件vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
中的任何功能。您可以将其添加到app/Http/Controllers/Auth/LoginController.php
public function username()
{
return 'login';
}
看看AuthenticatesUsers.php
中的其他功能。您可以覆盖它们中的每一个。但是不要覆盖vendors文件夹中的文件。您所做的任何更改都会在composer update
之后一天被覆盖。
答案 2 :(得分:0)
欢迎堆栈溢出。
如果您检查Laravel文档以进行身份验证,则会有一个名为“身份验证快速入门”的部分,以及一个名为“身份验证->用户名自定义”的子部分。这显示了您需要在LoginController
上定义的方法,以调整用作用户名的字段,默认情况下为email
。
public function username()
{
return 'login';
}
Laravel 5.6 Docs - Authentication - Authentication Quickstart