2015-07-10 76 views
1

我正在使用laravel Demo應用程序,我使用的登錄驗證方式分別爲frontendbackend,它們分別使用不同的表usersadminLaravel4 Multiauth登錄

要在laravel 4中實現multiauth,我使用了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' 
     ) 
    )