我使用Laravel 5.2,我需要使用多表身份验证。我从这个链接Can anyone explain Laravel 5.2 Multi Auth with example
中读到了我修改了config / auth.php
'guards' => [
'user' =>[
'driver' => 'session',
'provider' => 'user',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
//User Providers
'providers' => [
'user' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
]
],
//Resetting Password
'passwords' => [
'user' => [
'provider' => 'user',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
'admin' => [
'provider' => 'admin',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
以下是登录控制器的一部分(后方法)
$admindata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
if (Auth::attempt($admindata)) {
echo 'SUCCESS!';
} else {
$admin = Auth::admin();
return Redirect::to('/b');
}
但是我收到了这个错误
AuthManager.php第288行中的ErrorException:call_user_func_array() 期望参数1是有效的回调类 'Illuminate \ Auth \ SessionGuard'没有方法'admin'
看起来错误在Auth::attempt()
上。如何解决这个错误?
答案 0 :(得分:0)
我认为错误不在attempt
方法中,而在于:
$admin = Auth::admin();
您尝试在此运行admin
方法,显然Illuminate\Auth\SessionGuard
类中没有此类方法。