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

Php laravel 5.8验证失败时验证/注册控制器自定义重定向,php,laravel,laravel-5,laravel-5.8,Php,Laravel,Laravel 5,Laravel 5.8,我使用的是Laravel 5.8,我有一个包含注册和登录表单的页面(两个单独的表单发布到各自的端点/控制器) 我的注册表将按照Lavarel Auth提供的方式发布到Auth/RegistrationController 我想更改行为,以便在注册尝试失败时,它将添加一个额外的参数来重定向url,以便我知道哪个表单也应用于验证反馈 我已经知道redirectTo变量,这似乎适用于成功的请求,尽管您可以简单地覆盖父函数,在同一个函数中创建新用户 身份验证/注册控制器创建新方法为 在这里,在“$dat

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

我的注册表将按照Lavarel Auth提供的方式发布到Auth/RegistrationController

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


我已经知道redirectTo变量,这似乎适用于成功的请求,尽管您可以简单地覆盖父函数,在同一个函数中创建新用户

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

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

对于错误检查,您只需检查

Laravel全局错误变量$errors是否为null


我希望这将解决您的问题

您需要覆盖
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);
}

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

受保护功能寄存器(请求$Request) {

$errors=['error'=>'yout errors list]; 如果(!empty($errors)){ return redirect()->route('/register errorpage')->withInput()->withErrors($errors); }
}

我想您还没有理解我的问题,我想根据注册失败的情况有条件地重定向。您的答案基于。有效注册您所说的不成功注册是什么意思?laravel中有一个默认的验证规则。被称为“独特的”。。您可以像===Validator::make那样使用它($data,['email'=>['required','string','email','max:255','unique:users']);我仍然不确定,我们正在努力解决正确的问题。也许我应该更详细地解释一下?
  /**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
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']),
    ]);
}
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);
}