我正在尝试使用laravel 5登录用户.这是我的控制器
public function postLogin(LoginRequest $request){
$remember = ($request->has('remember'))? true : false;
$auth = Auth::attempt([
'email'=>$request->email,
'password'=>$request->password,
'active'=>true
],$remember);
if($auth){
return redirect()->intended('/home');
}
else{
return redirect()->route('login')->with('fail','user not identified');
}
}
Run Code Online (Sandbox Code Playgroud)
当我输入错误的凭据,一切正常,但当我输入正确的,我收到此错误消息:
ErrorException in EloquentUserProvider.php line 110:
Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Models\User given, called in C:\xampp\htdocs\Projects\Pedagogia\Admin.pedagogia\vendor\laravel\framework\src\Illuminate\Auth\Guard.php on line 390 and defined
Run Code Online (Sandbox Code Playgroud)
我没有看到我做错了什么
传递给Illuminate\Auth\EloquentUserProvider :: validateCredentials()的参数1 必须是Illuminate\Contracts\Auth\Authenticatable的实例,App\Models\User的实例给出.
该类的validateCredentials()方法Illuminate\Auth\EloquentUserProvider需要一个实例Illuminate\Contracts\Auth\Authenticable,但是你传递的是一个实例App\Models\User.简而言之,您的用户模型需要实现Illuminate\Contracts\Auth\Authenticable 接口以使用Laravels身份验证脚手架.
您的App\Models\User模型应如下所示:
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Auth\Authenticable as AuthenticableTrait;
class User extends \Eloquent implements Authenticatable
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4847 次 |
| 最近记录: |