如何在Laravel中为多个身份验证添加注册功能?

时间:2016-05-16 18:01:24

标签: php laravel laravel-5

这是此question的扩展。我正在尝试按照多个身份验证的已接受答案,向我的Laravel项目添加一个用户表admin。我已经完成了他所说的一切,为admin model添加了警卫,控制器,中间件和路线。但是,当我输入之前在locolhost/admin/register中设置的routes.php并输入注册信息时,我收到View [admin.auth.register] not found.错误,根据该问题给出了routes.php

Route::group(['middleware' => ['web']], function () {
#Route::auth();
Route::get('web-login', 'Auth\AuthController@webLogin');
Route::post('web-login', ['as'=>'web-login','uses'=>'Auth\AuthController@webLoginPost']);

Route::get('/admin/login','AdminAuth\AuthController@showLoginForm');
Route::post('/admin/login','AdminAuth\AuthController@login');
Route::get('/admin/logout','AdminAuth\AuthController@logout');

// Registration Routes...
Route::get('admin/register', 'AdminAuth\AuthController@showRegistrationForm');
Route::post('admin/register', 'AdminAuth\AuthController@register');

Route::get('/admin', 'AdminController@index');
Route::get('/', function () {
return view('welcome');
});

AdminAuth/AuthController.php

   public function showLoginForm()
{
    if (view()->exists('auth.authenticate')) {
        return view('auth.authenticate');
    }

    return view('admin.auth.login');
}
public function showRegistrationForm()
{
    return view('admin.register');
}  

只定义了showLoginForm,但register函数没有定义。你知道我该怎么定义它吗?提前谢谢!

编辑:

以下是我的尝试:

    public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    Auth::login($this->create($request->all()));

    return redirect($this->redirectPath());
}

但是我遇到了NotFoundHttpException错误。你有什么想法吗?感谢!!!

1 个答案:

答案 0 :(得分:0)

错误表明您没有名为“admins”的表。确保您拥有它或将表值更改为模型中的正确值。

限制1被添加到SQL,因为auth系统正在尝试加载单个管理(用户)记录,而不是集合。