Laravel 5.6 Auth-非标准表

时间:2018-08-23 13:43:30

标签: laravel laravel-5 laravel-5.6

我刚接触Laravel,使用 auth 选项时遇到了一些问题。 我正在尝试在另一个自定义表上使用auth。我已经设置了到新表的连接,但是Laravel仍在搜索电子邮件字段。在我的表中有“登录”字段。我不知道在哪里更改,有人可以帮忙吗?

我正在使用Laravel 5.6 我创建了新模型,并将受保护的$table添加到用户(默认)模型中。

那是我的错误:

  

SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'email'

3 个答案:

答案 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