在Laravel登录期间如何检查其他字段?

时间:2018-11-08 02:12:37

标签: laravel laravel-5 laravel-5.2

在Laravel登录期间如何检查其他字段?

现在,它可以在包装盒中工作,并接受电子邮件和密码。用户登录时如何另外查看状态参数?

我使用这个LoginController

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

class LoginController extends Controller
{
   use AuthenticatesUsers;
}

我在LoginController中尝试过此操作

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

        if (Auth::attempt($credentials)) {
            return redirect()->intended('home');
        }
    }

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

如果要删除use AuthenticatesUsers;,它会生效,但随后无法退出登录页面。

5 个答案:

答案 0 :(得分:2)

在您的LoginController中,在以下函数中添加一个额外的字段

protected function credentials(Request $request)
{
 return array_merge($request->only($this->username(), 'password'), ['column-name' => 'value']);
}

答案 1 :(得分:1)

您可以添加其他字段,以通过d功能

检查登录

在您内部credentials添加LoginController函数,并在附加字段中附加电子邮件,密码

示例:

credentials

答案 2 :(得分:1)

您的问题标签为 laravel 5.2 ,那么对于5.2,您应该覆盖getCredentials函数:

protected function getCredentials(Request $request)
{
    $credentials = $request->only($this->loginUsername(), 'password');

    $credentials['status'] = 1;

    return $credentials;
}

如果您使用的是 laravel 5.3 + ,则Emtiaz Zahid的答案是正确的(覆盖credentials函数)

答案 3 :(得分:1)

在您的LoginController.php

 Illuminate\Http\Request;

 protected function credentials(Request $request)
 {
 return array_merge($request->only($this->username(), 'password'), ['verified' => 1]);
 }

答案 4 :(得分:1)

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

public function credentials(Request $request)
{

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

}