首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么required_if中没有显示验证消息?

required_if是Laravel框架中的一种验证规则,用于在特定条件下验证字段是否必填。当条件满足时,如果字段为空,则验证失败。

在Laravel中,验证规则可以通过messages方法自定义错误消息。然而,对于required_if规则,如果字段为空,验证失败时,默认的错误消息中不会显示验证消息。这是因为Laravel框架在处理required_if规则时,会使用内部的错误消息格式化方法,而不是使用自定义的错误消息。

要解决这个问题,可以通过自定义验证器来实现。首先,在app/Providers/AppServiceProvider.php文件中的boot方法中添加以下代码:

代码语言:php
复制
Validator::extendImplicit('required_if_with_message', function ($attribute, $value, $parameters, $validator) {
    $data = $validator->getData();
    $otherField = $parameters[0];
    $otherValue = $parameters[1];

    if (isset($data[$otherField]) && $data[$otherField] == $otherValue) {
        return !empty($value);
    }

    return true;
});

然后,在resources/lang/语言文件/validation.php中添加以下代码:

代码语言:php
复制
'required_if_with_message' => 'The :attribute field is required when :other is :value.',

现在,可以在验证规则中使用required_if_with_message规则,并在messages方法中定义错误消息。例如:

代码语言:php
复制
$rules = [
    'field1' => 'required_if_with_message:field2,value',
];

$messages = [
    'field1.required_if_with_message' => 'The Field 1 is required when Field 2 is value.',
];

$validator = Validator::make($data, $rules, $messages);

这样,当required_if_with_message规则验证失败时,将显示自定义的错误消息。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云函数(SCF)。

腾讯云云服务器(CVM)是一种弹性、安全可靠的云计算基础设施服务,提供了多种规格的虚拟机实例供用户选择,可满足不同业务场景的需求。详情请参考:腾讯云云服务器(CVM)产品介绍

腾讯云云函数(SCF)是一种事件驱动的无服务器计算服务,可以帮助开发者更轻松地构建和管理应用程序。它支持多种编程语言,提供了弹性的计算能力,并且按实际使用量计费。详情请参考:腾讯云云函数(SCF)产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IM热门功能讨论:为什么微信里没有消息“已读”功能?

为什么淘宝就有这个功能呢? ▲ 阿里旺旺的PC端消息“已读”功能 换句话说:聊天消息的“已读”和“未读”状态在什么情况下该做呢?...为什么运用本源思维呢? 因为往往没有所谓好功能和坏功能,只有合适的功能;功能总是有好处也有坏处,帮助我们做出选择的,就是本源思维。 本源思维往往涉及到两个核心点:定位+场景。...3.2 第二步:本源思维:定位+场景 我们先来看看两个网友,对于微信消息为什么没有“已读”和“未读”功能的优质回答。...《那些年微信开发过的鸡肋功能,及其带给我们的思考》 《渐行渐远的人人网:十年亲历者的互联网社交产品复盘和反思》 《中国互联网社交二十年:全民见证的互联网创业演义》 《IM热门功能讨论:为什么微信里没有消息...《感悟分享:在腾讯的八年,我的成长之路和职业思考》 《调皮的程序员:Linux之父雕刻在Linux内核的故事》 《迷茫前行:一个专科渣渣菜鸟的编程入门感悟》 《机会不给无准备的人:一个Android

1.1K30

IM热门功能讨论:为什么微信里没有消息“已读”功能?

而查看消息后的举动更是引发人的好奇:是否回复,是否及时回复,为什么这个时候回复……这些都能反应出对方的态度,这种好奇同样是人性。 所以我认为张小龙只说了上半句,下半句应该是:不求有功,但求无过。...为什么淘宝就有这个功能呢? ? ▲ 阿里旺旺的PC端消息“已读”功能 换句话说:聊天消息的“已读”和“未读”状态在什么情况下该做呢?...为什么运用本源思维呢? 因为往往没有所谓好功能和坏功能,只有合适的功能;功能总是有好处也有坏处,帮助我们做出选择的,就是本源思维。 本源思维往往涉及到两个核心点:定位+场景。 ?...3.2 第二步:本源思维:定位+场景 我们先来看看两个网友,对于微信消息为什么没有“已读”和“未读”功能的优质回答。...同时,微信作为熟人间社交,“已读/未读”这样的功能不是没有用;而是对于大部分用户,这样的反馈是毫无价值的。 对于熟人而言,对方回复我了,肯定就是已读;对方没有回复,可能就是没看到或就是不想回。

1.3K20
  • 为什么 MyBatis 源码没有我那种 if···else

    在MyBatis的两万多行的框架源码,使用了大量的设计模式对工程架构的复杂场景进行解耦,这些设计模式的巧妙使用是整个框架的精华。 经过整理,大概有以下设计模式,如图1所示。...它的核心目的是不希望把过多的关于对象的属性设置写到其他业务流程,而是用建造者方式提供最佳的边界隔离。...场景介绍:没有代理模式就不存在各类框架。...装饰器模式:是一种结构型设计模式,允许将对象放入包含行为的特殊封装对象, 为元对象绑定新的行为。...迭代器模式:是一种行为型模式,能在不暴露集合底层表现形式的情况下遍历集合的所有元素。

    21820

    为什么 MyBatis 源码没有我那种 if···else

    在MyBatis的两万多行的框架源码,使用了大量的设计模式对工程架构的复杂场景进行解耦,这些设计模式的巧妙使用是整个框架的精华。 经过整理,大概有以下设计模式,如图1所示。...它的核心目的是不希望把过多的关于对象的属性设置写到其他业务流程,而是用建造者方式提供最佳的边界隔离。...场景介绍:没有代理模式就不存在各类框架。...装饰器模式:是一种结构型设计模式,允许将对象放入包含行为的特殊封装对象, 为元对象绑定新的行为。...迭代器模式:是一种行为型模式,能在不暴露集合底层表现形式的情况下遍历集合的所有元素。

    18610

    没有外部验证的预测模型为什么也可以发6分+SCI?

    CIBERSORT算法在低风险组显示出较高的巨噬细胞M1细胞,T细胞滤泡辅助细胞和浆细胞浸润水平。此外,与高风险组相比,低风险组具有更高的免疫评分和独特的突变特征。...GO分析表明,这些DE-IRGs在以下生物过程显著富集:白细胞迁移、激活免疫应答和调节细胞表面受体信号传导;细胞成分(CC)分析显示,这些IRG富集在质膜、受体复合物和血液微粒外侧;分子功能(MF)分析显示...KM生存曲线分析显示,训练数据集(图3A,4A)、验证数据集(图3B,4B)以及整个数据集(图3C,4C)两个风险组之间的OS和RFS(无复发生存率)显著不同。...结果还显示,在高危组肥大细胞激活且单核细胞有更多富集,而在DFS模型的低危组巨噬细胞M1、浆细胞和T细胞滤泡辅助细胞有更多富集。...但是,将当下比较火热的免疫疗法与功能分析关联了起来是文章的一个亮点,也是其能发在没有外部验证数据的情况下发较高分文章的原因。

    2.6K62

    为什么查看的ARP表项没有VLAN信息?

    1 为什么查看的ARP表项没有VLAN信息?...如果ARP表项没有VLAN信息,那么代表这条表项的接口处于三层模式,是一个三层口; 如果ARP表项有VLAN信息(并且表项接口不是三层子接口时),那么代表这条表项的接口处于二层模式,是一个二层口...例如回显IP地址为10.1.1.3,MAC地址为0023-0045-0067,该ARP表项是静态配置的,出接口是10GE1/0/3,VLAN编号是101。...例如回显IP地址为10.1.1.4,MAC地址为0025-9e95-7c32,该ARP表项是从接口10GE1/0/13动态学习到,剩余存活时间是3分钟。...例如回显IP地址为10.1.1.5,MAC地址为306b-2079-2202,该ARP表项类型为I,表示IP地址10.1.1.5是接口10GE1/0/14的IP地址。

    1.8K20

    为什么Power Query的筛选内容显示不全?

    小勤:为什么在PQ里筛选的老显示这个? 大海:当数据比较多的时候,就经常会这样显示。 小勤:有什么规律吗?...大海:据了解,PQ首先是检测表的前1000行数据的不重复值来提供筛选选项的,当数据超过1000行时,就可能会显示“列表可能不完整”的提示。...这种情况下,只要点击提示信息右侧的“加载更多”,就可以显示更多的选项。 小勤:啊。那这又是什么情况?...大海:PQ的筛选器只能容纳1000个供筛选的选项,当PQ检测数据的前1000行,发现全部都是不同的值时,就直接显示1000行,然后告诉你达到了上限。 小勤:那这种情况下怎么筛选啊?...en-us/article/Power-Query-specifications-and-limits-5FB2807C-1B16-4257-AA5B-6793F051A9F4) 小勤:也就是说如果要筛选没有显示出来的内容

    4.1K20

    《你不知道的JavaScript》:js为什么没有类?

    类--是一种代码的组织结构形式,是一种在软件对真实世界问题领域的建模方法。类有三个核心概念:封装、继承和多态。...在软件,对不同的交通工具重复定义载人能力等方法是没有意义的,只要在Vehicle类定义一次,然后在Car类时,只要声明它继承(或扩展)了Vehicle类的基础定义就行。...这里要注意,尽管Vehicle类和Car类都会定义相同的方法,但实例的数据可能是不同的。比如每辆车的识别码等。 这就可以看出,类的继承和实例化。...在javascript也有类似的语法,但是和传统的类完全不同。 js只有对象,没有类这个概念。 类意味着复制,传统的类被实例化时,它的行为会被复制到实例。类被继承时,行为也会被复制到子类。...将函数Fn的this绑定到新创建的对象obj上面。showName是实例方法。这里就涉及到原型链了,下篇来看原型。

    1.7K30

    【DB笔试面试565】在Oracle为什么索引没有被使用?

    ♣ 题目部分 在Oracle为什么索引没有被使用? ♣ 答案部分 “为什么索引没有被使用”是一个涉及面较广的问题。有多种原因会导致索引不能被使用。...还有很多其它原因会导致不能使用索引,这个问题在MOS(MOS即My Oracle Support)“文档1549181.1为何在查询索引未被使用”中有非常详细的解释,作者已经将相关内容发布到BLOG(...二、索引本身的问题 n 索引的索引列是否在WHERE条件(Predicate List)? n 索引列是否用在连接谓词(Join Predicates)?...n 在总体成本,表扫描的成本是否占大部分? n 访问空索引并不意味着比访问有值的索引高效? n 参数设置是否正确? 四、其它问题 n 是否存在远程表(Remote Table)?

    1.2K20

    WordPress 使用了 CDN 之后,为什么图片不显示或部分没有被替换成 CDN 域名

    我们继续来解答 WPJAM Basic 插件「CDN 加速」功能的常见问题,今天是图片不能正常显示没有替换为 CDN 域名这两个问题: 我感觉什么都设置好了,但是图片还是不显示,这是为什么?...我感觉什么都设置好了,但是图片还是不显示? 首先要不要你感觉,要我感觉。...这个问题可以归类为为什么部分图片没有被替换成 CDN 域名,还是本地域名,拿 Revolution slider 插件出来说,因为因为这个插件用户比较多,碰到的人比较多。...所以我在「CDN 加速」功能增加了「将无http://或https://的静态资源也进行镜像处理」的选项,你只要勾选一下,这些图片也会被替换成 CDN 域名,所以去勾选一下,再看看是不是否都替换成 CDN...域名了: 为了效率考虑,该选项默认是没有开启的,如果没有这个问题,也不建议开启。

    1.8K30

    为什么 CSS flex 布局没有 `justify-items` 和 `justify-self`?

    为什么 CSS flex 布局没有 justify-items 和 justify-self?...为什么在 CSS flex 布局存在 align-items 和 align-self,却没有 justify-items 和 justify-self 呢?...主轴和交叉轴的区别 在没有折行的情况下,一个 flex 容器(flex container)只有一个主轴,但却有 n 个交叉轴(n 代表 flex item的数量)。...CSS 属性的命名规则 2.1 align-* 和 justify-* 在 CSS flex 布局,属性名称的 justify-* 表示这是应用于主轴上的规则,而 align-* 表示这是应用于交叉轴上的规则...总结 因此,在 flex 布局,我们不能使用 justify-items,因为多个元素共享一个轴,它们属于同一组,这会导致相互干扰。

    38330

    VMware Workstation 11 Ubuntu 14.04 的 VMware Tools 问题 :没有显示共享文件夹

    症状:主要表现在Win7用VM11安装的Ubuntu14.04,安装完自带的VMware Tools之后,/mnt/hgfs 没有前面已经设置好的共享文件夹。...apt-get install open-vm-toolbox 下面的是另外一种解决方法,经验证有效,且疗效较好。...clone https://github.com/rasa/vmware-tools-patches.git cd vmware-tools-patches 接下来,通过VMware的“虚拟机”菜单的安装...VMware Tools子菜单挂载VMware Tools镜像,挂载完成后把VMware Tools光盘镜像的VMwareTools-9.9.2-2496486.tar.gz拷贝到之前的下载路径,然后运行脚本.../untar-and-patch-and-compile.sh 然后……没然后了,/mnt/hgfs/已经出现了我希望看到的共享文件夹。

    1.9K20

    为什么二进制没有2,八进制没有8,而十进制和十六进制却都有10和16?

    点击蓝字,关注我们 某乎上看到一个有意思的一个问题——为什么二进制没有2,八进制没有8,而十进制和十六进制却都有10和16?问题中是有错误的,但是不妨碍也简单聊聊。...10-15这些双数就用A、B、C、D、E、F表示了(不区分大小消息为什么是英文字母呢?...: 二进制确实没有2(十进制的说法),八进制确实没有8(十进制的说法)。...但是二进制10就表示了十进制的2,八进制的10表示了十进制的8。 而十进制的10表示了十,这个自然语言,我们人类或者说地球被设计的时候就自然有了自然语言中数字读法。...比如在wireshark中看到的数据包显示为十六进制: 再比如IPv6使用十六进制来显示

    20610

    Laravel Validation 表单验证(二、验证表单请求)

    这些错误也会被闪存到 session ,以便这些错误都可以在页面显示出来。如果传入的请求是 AJAX,会向用户返回具有 422 状态代码和验证错误信息的 JSON 数据的 HTTP 响应。...使用这个方法进行重定向后, $errors 变量会自动和视图共享,你可以把这些消息显示给用户。withErrors 方法接收验证器、MessageBag 或 PHP Array 。...这时你会想要验证更新的 E-mail 值是否唯一。如果用户仅更改了用户名字段而没有改 E-mail 字段,就不需要抛出验证错误,因为此用户已经是这个 E-mail 的拥有者了。...'; } } 当然, 如果你希望从翻译文件返回一个错误消息,你可以从 message 方法调用辅助函数 trans: /** * 获取验证错误消息。...你可以使用内联自定义消息数组或者在验证语言文件添加条目来实现这一功能。

    29.2K10
    领券