如何在 Laravel 登录时检查附加字段?

OPV*_*OPV 2 laravel laravel-5 laravel-5.2

如何在 Laravel 登录时检查附加字段?

现在它可以直接使用并接受电子邮件和密码。用户登录时如何额外检查状态参数?

我用这个LoginController

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
   use AuthenticatesUsers;
}
Run Code Online (Sandbox Code Playgroud)

我在 LoginController 中试过这个:

public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');
        $credentials['status'] = 1;

        if (Auth::attempt($credentials)) {
            return redirect()->intended('home');
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是 Laravel 忽略了这个方法 authenticate().

如果删除use AuthenticatesUsers;它变得活着,但随后不起作用注销,登录页面。

Emt*_*hid 6

您可以添加另一个字段以按credentials功能检查登录

在你里面LoginController添加credentials 函数并用电子邮件、密码附加额外的字段

例子:

public function credentials(Request $request)
    {
        $credentials = $request->only($this->email(), 'password');
        $credentials = array_add($credentials, 'status', '1');
        return $credentials;
    } 
Run Code Online (Sandbox Code Playgroud)


小智 5

请在您的 LoginController 中添加以下代码..

public function credentials(Request $request)
{

 return array_merge($request->only($this->username(), 'password'), ['type' => 'USER']);

} 
Run Code Online (Sandbox Code Playgroud)