2016-03-31 2 views
0

Я использую Laravel 5.2, и мне нужно использовать аутентификацию нескольких таблиц. Я читал по этой ссылке Can anyone explain Laravel 5.2 Multi Auth with exampleLaravel 5.2 Ошибка аутентификации нескольких столовException в AuthManager.php

Я модифицированная конфигурации/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'); 
} 

Но я получил эту ошибку

ОшибкаException в строке AuthManager.php 288: call_user_func_array() ожидает параметра тер 1 является допустимым обратного вызова, класс «Осветите \ Auth \ SessionGuard» не есть метод «админ»

Это выглядит как ошибка на Auth::attempt(). Как решить эту ошибку?

ответ

0

Я считаю, что ошибка не в attempt метода, но здесь:

$admin = Auth::admin(); 

Вы пытаетесь запустить здесь admin метод и, очевидно, не существует такой метод в Illuminate\Auth\SessionGuard классе.