当前位置: 首页 > web >正文

laravel 通过Validator::make验证后,如何拿到验证后的值

在 Laravel 中,通过 Validator::make 创建的验证器实例验证数据后,可以通过以下方式获取验证后的值:

  1. 使用 validate() 方法
    调用验证器实例的 validate() 方法,会返回经过验证的数据数组。如果验证失败,该方法会抛出 ValidationException 异常,因此需结合 passes()fails() 使用:

    $validator = Validator::make($input, $rules);
    if ($validator->passes()) {$validatedData = $validator->validate(); // 获取验证后的数据
    }
    

    这是获取验证后数据的核心方法 。

  2. 结合表单请求的 safe()collect()
    如果使用表单请求(Form Request)进行验证,可以通过 safe() 方法获取安全数据,并调用 collect() 转换为集合实例:

    $collection = $request->safe()->collect(); // 表单请求验证后获取数据
    

    此方式适用于通过表单请求触发的验证场景 。

  3. 手动过滤输入数据
    若需自定义逻辑,可直接从原始输入中提取已验证的字段:

    $validatedData = array_filter($input, function($key) use ($rules) {return array_key_exists($key, $rules);
    }, ARRAY_FILTER_USE_KEY);
    

    但此方法需确保规则与字段严格对应,推荐优先使用内置方法 。

注意事项

  • validate() 方法会自动排除未通过验证的字段,仅保留符合规则的数据 。
  • 使用 safe() 时,若验证失败,安全数据会被重置为空,因此需确保验证通过后再调用 。
http://www.xdnf.cn/news/7451.html

相关文章:

  • nmcli connection reload
  • C++ qt基类的成员变量,在派生类中需要具有不同的数据类型的解决方法
  • 【NLP】34. 数据专题:如何打造高质量训练数据集
  • 【深度学习基础/面试高频问题】常见的归一化
  • TS01S:单通道差分灵敏度校准电容触摸传感器芯片
  • linux系统双击EXE运行,在统信UOS上无缝运行EXE!统信Windows应用兼容引擎V3来了
  • 模块与包的导入
  • 国产SF2507交换机调试记录
  • 【git进阶】git rebase(变基)
  • 基于RT-Thread的STM32F4开发第五讲——软件模拟I2C
  • 研读论文《Attention Is All You Need》(7)
  • linux安装conda环境-ubuntu
  • linux——mysql故障排查与生产环境优化
  • CSS实现过多的文本进行省略号显示
  • 5:OpenCV—图像亮度、对比度变换
  • MySQL替换瀚高数据库报错: TO_DAYS()不存在(APP)
  • Playwright 多语言一体化——Python_Java_.NET 全栈采集实战
  • oracle序列自增问题
  • 安装NASM
  • 2022年下半年信息系统项目管理师——综合知识真题及答案(4)
  • Tare使用MCP|Win11安装UV
  • 直流电阻和交流电阻区别详解
  • AI大语言模型评测体系演进与未来展望
  • C++:模板初阶
  • 小土堆pytorch--神经网路的基本骨架(nn.Module的使用)卷积操作
  • 交叉引用、多个参考文献插入、跨文献插入word/wps中之【插入[1,3,4]、跨文献插入】
  • interface接口和defer场景分析
  • C++--内存管理
  • 动态规划-LCR 089.打家劫舍-力扣(LeetCode)
  • 国产化替代对金融行业有哪些影响?如何应对?