关于验证根据字段值的不同,其字段的验证也不同的解决方法

1. 运行环境

1). 当前使用的 Laravel 版本?

laravel8
//: <> (使用 php artisan --version 命令查看)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
7.4
//: <> (使用 php --version 命令查看 php 版本)

php-fpm 版本:

3). 当前系统

4). 业务环境

5). 相关软件版本

2. 问题描述?

关于验证根据字段值的不同,其字段的验证也不同的解决方法
如图所示:type有5个值,其中三个值的验证方式相同,其他两个值的验证方式不同,也就是说一共有三种验证方式

3. 您期望得到的结果?

我想知道怎么写val的验证式
//: <> (能截图就截图。)

4. 您实际得到的结果?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
随波逐流

可以使用 sometimes 来动态验证。

// 定义验证
$validator = Validator::make($request->all(), [
    'type' => ['required', 'in:int,date'],
]);

// 当type类型是int时
$validator->sometimes('val', ['required', 'min:1', 'max:100'], fn () => $request->input('type') === 'int');

// 当type类型是date时
$validator->sometimes('val', ['required', 'date'], fn () => $request->input('type') === 'date');

dd(
    $validator, // 可以访问 rules 生成的规则
    $validator->fails(), // 验证表单是否失败
    $validator->validated() // 获取验证结果
);
3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!