【发布时间】:2017-02-27 11:52:58
【问题描述】:
我按照官方指南从laravel 5.2升级到laravel 5.3:
https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0
因为我需要对默认身份验证进行一些自定义,所以我将login 函数复制到Http\Controllers\Auth\AuthController.php。
现在,当我更新时,`AuthController.php' 被分成了几个其他文件。
我已将login 函数复制到Http\Controllers\Auth\LoginController.php
现在,我在尝试登录时收到以下错误:
Controller.php 第 82 行中的 BadMethodCallException:
方法 [getCredentials] 不存在。
下面的登录功能(可能无关紧要):
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required',
]);
$credentials = $this->getCredentials($request);
// This section is the only change
if (Auth::validate($credentials)) {
$user = Auth::getLastAttempted();
if ($user->active) {
Auth::login($user, $request->has('remember'));
ActivityLog::add("User has successfully logged in.", $user->id);
return redirect()->intended($this->redirectPath());
} else {
return redirect($this->loginPath) // Change this to redirect elsewhere
->withInput($request->only('email', 'remember'))
->withErrors([
'active' => 'This account has been suspended.'
]);
}
}
return redirect($this->loginPath)
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
]);
}
我该如何解决这个问题?
【问题讨论】:
-
getCredentials方法在哪里?它说找不到它 -
好吧,这个方法可能在
5.2和5.3之间被删除了。或者换成别的东西…… -
所以你没有创建它?因为错误清楚地表明你的代码需要它,而你在这里使用它
$credentials = $this->getCredentials($request);
标签: laravel laravel-5 laravel-5.2 laravel-5.3