laravel 5.8 身份验证/注册控制器自定义重定向验证失败



我正在使用Laravel 5.8,我有一个页面同时包含注册和登录表单(2个单独的表单发布到各自的端点/控制器(

我的注册表将发布到 Lavarel 身份验证提供的身份验证/注册控制器。

我想更改行为,以便在注册尝试失败时,它将添加一个额外的参数来重定向 url,以便我也知道将哪种表单应用于验证反馈。

我已经知道重定向到变量,这似乎是成功的请求

您需要重写 Auth/RegistrationController::register 方法,查看框架提供的默认代码并根据需要对其进行调整,如下所示:

public function register(Request $request) {
    if ($this->validator($request->all())->fails()) {
        return redirect('/foo?bar=1');
    }
    // Copy the default behaviour here
    ...
    // or you can just
    return parent::register($request);
}

您可以简单地覆盖父函数以在同一中创建新用户

身份验证/注册控制器创建新方法作为

  /**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return AppUser
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

在这里,在"$data"变量中,您将获得通过表单传递的所有参数。

对于错误检查,您可以检查,

Laravel全局误差变量$errors是否为空

  /**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return AppUser
 */
protected function create(array $data)
{
    if(!empty($errors)){
        if($data['form'] == 'form_1'){
            $redirectTo = 'fitst_form' 
        }
        else if($data['form'] == 'form_2'){
            $redirectTo = 'second_form' 
        }
    }
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

我希望这能解决你的问题

您必须在app/Http/Controllers/Auth/RegisterController中设置注册方法.php

受保护的功能寄存器(请求$request({

$errors = ['错误'

=>'你错误列表]; if(!empty($errors(({ 返回 redirect((->route('/register-errorpage'(->withInput((->withErrors($errors(; }}

相关内容

  • 没有找到相关文章

最新更新