BadMethodCallException 方法用户名不存在

BadMethodCallException Method username does not exist

我有一个很奇怪的问题。当我提交表单时,服务器端验证出现错误。

BadMethodCallException

Method username does not exist.

LoginController.php

class LoginController extends Controller
{
    use AuthenticatesUsers;
    protected $username = 'username';
    protected $redirectTo = '/dashboard';
    protected $guard = 'web';

    public function getLogin()
    {
        if (Auth::guard('web')->check())
        {
            return redirect()->intended('dashboard');
        }
        return view('login');
    }

    public function postLogin(Request $request)
    {
        $auth = Auth::guard('web')->attempt(['username' => $request->username(),
                                                   'password' => $request->password(), 'active' => 1]);
        if ($auth)
        {
            return redirect()->route('dashboard');
        }
        return redirect()->route('/');
    }

    public function getLogout()
    {
        Auth::guard('web')->logout();
        return redirect()->route('/');
    }
}

问题是您试图访问输入 属性 作为方法,我的意思是 $request->username() 和密码一样,没有用户名方法,这就是您收到错误的原因。您可以使用 input() 方法访问输入,例如 $request->input('username') 或通过动态 属性 $request->username

docs

阅读更多内容