Larav5.8 Auth / Register Controller 定制重定向验证失败

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

我的注册表格由 Lavarel Auth 提供给董事会 / 注册总监。

我想改变行为 , 以便在一个失败的注册尝试中 , 它会添加一个额外的参数来重定向 url , 这样我就知道应用哪种形式来验证反馈。

我已经意识到了对变量的重新定向这似乎是对成功的请求


EN From: laravel 5.8 Auth/RegisterController custom redirect on validation failure

7 Comments

  1. 您可以简单地覆盖父函数 , 在同一个位置创建新用户

    Auth/RegistrationController create new method as

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

    在这里 , 在"$data"变量中,您将获得通过窗体的所有参数。

    因为你可以检查错误 ,

    Laravel global error variable $errors is null or not

      /**
     * 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']),
        ]);
    }
    

    希望这能解决你的问题

    1. 我不认为你理解我的问题 , 我想根据一个失败的注册有条件地重定向。 你的回答是基于. 有效的注册
    1. 在 laravel 中有一个默认的验证规则。 您可以使用它例如 = = = = Validator:: Make ($data,[电子邮件=>[需要],'string','email','max:255','sistic:users'])。
    1. 我仍然不确定 , 我们正在处理正确的问题。 或许我应该更详细地解释一下 ?
  2. 您需要重写 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);
    }
    

More articles:

  • 如何显示验证错误?
  • 如何在 laravel 5.2 中添加自定义验证规则 ?
  • 验证成功后无法检索 Laravel 5 用户
  • 拉拉勒维尔 , 除了来自 auth 中间件的单一路径
  • Laravel 使用定制的 Php.ini 和手工服务
  • Laravel 条件唯一验证
  • Laravel 控制器实例创建
  • 在文件上传到验证文件大小和文件类型时 , 是否可以在 Luman laravel 中显示错误代码 ?
  • 如何在 Laravel 做简单的重定向?
  • 从刀片上重定向到参数
  • 将参数添加到 laravel 的重定向方法中
  • 具有多个域的 Laravel 路径在链接 _ to _ action 函数中失败
  • 验证不起作用的用户实例
  • 当 laravel 身份验证失败时 , Ajax 成功
  • 重新定向忘记密码电子邮件链接后验证令牌
  • <input type="text" />验证: 为什么需要|字符串?
  • 如果额外的 Param 传递给 Laravel, 如何失败验证?
  • 已登录的 Laravel Auth Login 窗体重定向
  • 如何创建一个腊瓦 5.5 定制 auth ?
  • 多到多的关系 ?
  • 如何在 Laravel 5.2 中创建具有身份验证的 API?
  • Laravel 5 另一个控制器的访问控制器方法
  • Laravel - 调用未定义方法 Illuminate\ Confres[General]命令:句柄
  • 选择未显示 Laravavailed 错误的元素
  • Larav$e->GetMessage在请求验证错误时为空
  • 当我们运行"phpartisanserver"时,如何将默认的url从localhost:8000改为laravel的其他ip
  • 在模型上创建过程的 Laravel 5 我得到错误
  • maven"checksum验证失败,预期xxx,但由于"从jenkins上传到Artifactory"
  • 拉勒维尔只能从释放中得到计数
  • 我怎么能在拉勒维尔一组一组地点菜?