2015-07-10 2 views
1

Я работаю над демонстрационным приложением laravel и использую аутентификацию для входа для frontend и backend, оба используют разные таблицы users и admin соответственно.Laravel4 Multiauth Login

Для достижения множественности в laravel 4 я использовал https://github.com/ollieread/multiauth библиотеки.

Теперь моя проблема в том, что я не знаю, как обращаться с аутентификацией на основе обеих сторон. Я следовал всем инструкциям, приведенным в github. его рабочий штраф для меня как frontend сторона с users стол, но его не работает для таблицы администратора для backend

Я получаю ошибку для входа в систему.

Call to undefined method Admin::newQuery()

Здесь я привожу свой код snippest то, что я сделал до сих пор.

auth.php

'multi' => array(
      'admin' => array(
       'driver' => 'eloquent', 
       'model' => 'Admin' 
      ), 
      'user' => array(
       'driver' => 'database', 
       'table' => 'users' 
      ) 
     ) 

userController.phpfrontend

public function doLogin() { 
     $input = Input::all(); 
     $credentials = array(
      'email' => $input['email'], 
      'password' => $input['password'] 
     ); 

     if(Auth::user()->attempt($credentials)){ 
      return Redirect::intended('/'); 
     } 
     // authentication failure! lets go back to the login page 
     return Redirect::to('login')->with('error_message', 'Invalid email or password')->withInput(); 
    } 

adminLoginController.phpbackend

public function doLogin() { 
     $input = Input::all(); 
     $credentials = array(
      'username' => $input['username'], 
      'password' => $input['password'] 
     ); 
     if (Auth::admin()->attempt($credentials)) { 
      return Redirect::route('dashboard'); 
     } 
     // authentication failure! lets go back to the login page 
     return Redirect::to('admin/')->with('error_meessage', 'Invalid username or password')->withInput(); 
    } 

ответ

2

Попробуйте это:

Вместо этого:

'multi' => array(
     'admin' => array(
      'driver' => 'eloquent', 
      'model' => 'Admin' 
     ), 
     'user' => array(
      'driver' => 'database', 
      'table' => 'users' 
     ) 
    ) 

Используйте это:

'multi' => array(
     'admin' => array(
      'driver' => 'database', 
      'model' => 'Admin', 
      'table' => 'admin' 
     ), 
     'user' => array(
      'driver' => 'eloquent', 
      'model' => 'User', 
      'table' => 'users' 
     ) 
    ) 
Смежные вопросы