用户注册Laravel 5.1

时间:2015-12-16 22:54:19

标签: php laravel-5.1

我试图在laravel 5.1中实现构建的用户身份验证/注册,但它会重定向到/ home。

继承路线:

Route::post('sign_up' , 'Auth\AuthController@postRegister');

表格

 <form method="POST" action="http://localhost:8000/sign_up" accept-charset="UTF-8" class="form-horizontal">

postRegister函数被注释掉,所以它不应该去任何地方:

public function postRegister(Request $request)
    {
//        $validator = $this->validator($request->all());
//
//        if ($validator->fails()) {
//            $this->throwValidationException(
//                $request, $validator
//            );
//        }
//
//        Auth::login($this->create($request->all()));
//
//        return redirect($this->redirectPath());
    }
}

1 个答案:

答案 0 :(得分:1)

请注意,真实逻辑发生在AuthenticatesUsers特征中,该特征位于Illuminate\Foundation\Auth命名空间中。

如果你打开它,你会注意到负责方法loginPath()检查是否存在loginPath属性,该属性负责重定向回登录路径/视图。

要更改重定向流程,请将此属性添加到AuthController.php

protected $loginPath = "/"; // redirect to where you want

或许您想要在postRegister()角色或其他条件下重定向,您可能会像下面的代码那样做,这是肮脏的道路或让我们说不利用Laravel 5.1 new {{3功能:

/**
 * Handle a registration request for the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function postRegister(Request $request)
{
    $validator = $this->validator($request->all());

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

    // Change your loginPath here if you want: $this->loginPath = "/";

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

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

值得一提的是,在成功登录尝试后,其他并行属性$redirectTo用于重定向到,您可以将其添加到authController.php,即:您应该再次使用策略将管理员重定向到仪表板,也可以将普通用户重定向到个人资料或家庭!

protected $redirectTo = "dashboard";

小调整

你可能想要将链接更改为动态,所以请在表单中填写如下:

<form method="POST" action="{{ action('Auth\AuthController@postRegister') }}" accept-charset="UTF-8" class="form-horizontal">

相关问题