Laravel4 Multiauth登录

时间:2015-07-10 10:42:38

标签: php model-view-controller laravel-4

我正在使用laravel Demo应用程序,我正在使用frontendbackend的登录身份验证,它们分别使用不同的表usersadmin

为了在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();
    }

1 个答案:

答案 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'
        )
    )