我正在使用laravel Demo应用程序,我正在使用frontend
和backend
的登录身份验证,它们分别使用不同的表users
和admin
。
为了在laravel 4中实现multiauth,我使用了https://github.com/ollieread/multiauth库。
现在我的问题是我不知道如何处理双方登录身份验证。我已按照github中提供的所有说明进行操作。我frontend
一边使用users
表,但它不适用于backend
的管理表
我收到后端登录错误。
Call to undefined method Admin::newQuery()
在这里,我提供了我迄今为止所做的代码。
auth.php
'multi' => array(
'admin' => array(
'driver' => 'eloquent',
'model' => 'Admin'
),
'user' => array(
'driver' => 'database',
'table' => 'users'
)
)
userController.php frontend
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.php backend
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();
}
答案 0 :(得分: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'
)
)