使用逻辑运算符进行 Laravel 表单验证

2024-04-10

当用户填写消息(文本区域)时,他/她无法填写日期、时间、地点值。
仅当 Message 为空且所有这三个字段均已填充时,才会考虑这三个字段。
如何使用 Laravel 表单验证来做到这一点?是否可以在Request的规则方法中定义这些逻辑?
我是 Laravel 的新手。
提前致谢


您可以通过使用条件验证规则来实现此目的(服务器端):

  • required_if:另一个字段,值,...
  • required_unless:另一个字段,值,...
  • required_with:foo,bar,...
  • required_with_all:foo,bar,...
  • required_without:foo,bar,...
  • required_without_all:foo,bar,...

对于你的情况我想说:

  • date除非已填写消息,否则为必填项
  • time除非已填写消息,否则为必填项
  • venue除非已填写消息,否则为必填项
  • message需要没有全部日期、时间、地点

如果需要的话,可以用管道将它们分隔开来进行链式规则

下面是一个示例片段。在你的内部使用这个方法示例表单请求延伸Request

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    $rules = [];

    switch ($this->method()) {
        case 'PATCH':
        case 'PUT':
        case 'POST':
            $rules = [
                'date'    => 'required_without:message',
                'time'    => 'required_without:message',
                'venue'   => 'required_without:message',
                'message' => 'required_without_all:date,time,venue',
                ];
            break;
        default:
            // Perform no alteration to rules
            break;
    }

    return $rules;
}

查看文档在这里 https://laravel.com/docs/5.2/validation#rule-required-if

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用逻辑运算符进行 Laravel 表单验证 的相关文章

  • 如何使用 Angular JS 处理表单中的多个提交按钮?

    我正在使用 AngularJS 并且有一个用户可以输入数据的表单 在表单的末尾 我想要有两个按钮 一个用于 保存 它将保存并转到另一页 另一个标记为 保存并添加另一个 的按钮将保存表单 然后重置它 允许他们输入另一个条目 我如何以角度实现这
  • 使用嵌套对象进行 Hapi/Joi 验证

    我对我的其中一条路线进行了以下验证 payload keywordGroups Joi array items Joi object keys language Joi string required containsAny Joi arr
  • 如何在 laravel 中插入多类别和多列不同类别的帖子?

    大家好 我是一个新的 Laravel 我的项目有问题 我有2张桌子 posts id title category id category id name PHP Laravel Ruby 例如 我想要的结果是 如果我将帖子插入帖子数据库
  • Laravel Eloquent:计算总价的最佳方法

    我正在使用 Laravel 5 1 构建一个简单的买卖应用程序 每个Buy Model都有很多BuyDetail 里面存储了购买的商品数量和buy price 我已经在模型上实现了表之间的关系 class Buy extends Model
  • AJV自定义关键字验证

    我正在使用 AJV 库来验证我的 JSON 架构 我希望能够验证Startdate成为一个字符串 如果不是字符串 则应将其转换为N A 目前 它仅转换undefined to N A 但是 在这些情况下 它不会按预期工作 null gt 空
  • 提交搜索表单后无法使用 Flask 应用程序从 url 检索变量

    我想在用户提交搜索表单后呈现一个新视图 我的制作方式与处理其他视图的方式相同 但不幸的是这次没有发生任何事情 我无法从应用程序路由中检索内容 所以这个问题不是重复的this https stackoverflow com questions
  • AngularJS - 加载时触发表单验证

    我在表单中添加了 required 和 pattern 等字段验证属性 并且该表单位于 ng controller 内 验证有效 但似乎验证是在页面加载时触发的 并且我看到页面加载时所有字段都被标记为无效并带有错误消息 我尝试将 novav
  • 使用 Mongodb 和 Node.js 在一个页面中处理多个表单

    我的登录和注册表单都在同一页面上 我已经指定了两种不同的路由来发布数据 但是当我点击注册表单末尾的注册按钮时 它会保存登录表单输入 没有 我看了这个问题 多种表单 一张处理页面 https stackoverflow com questio
  • 如何处理MaxUploadSizeExceededException

    MaxUploadSizeExceededException当我上传的文件大小超过允许的最大值时 会出现异常 我想在出现此异常时显示错误消息 如验证错误消息 我该如何处理这个异常 以便在 Spring 3 中执行类似的操作 Thanks 这
  • 对 Windows 窗体上的字段执行数据验证的最简单方法

    我有一个 Windows 窗体项目 我想在用户按下底部的计算按钮之前强制用户在某些字段中输入值 这些字段包括三对单选按钮 five 文本框和一个组合框 因此基本上所有这些字段都需要包含一个值才能执行计算 此外 文本框应包含numbers 任
  • 尽管不在形式中,但 Rails 属性会发生变化

    我有 Rails 应用程序 用户可以在其中互相分配任务 每个任务都有一名分配者和一名执行者 默认情况下 任务创建者 当前用户 始终是分配者 分配者和执行者都可以编辑同一个任务 我的问题如下 假设 user id 2 是分配者 user id
  • jQuery JSON 请求得到“200 OK”答案,但没有内容

    我正在使用 jQuery 通过访问者的 IP 地址获取其位置 有一项很棒的服务叫做免费地理IP http freegeoip appspot com 我需要做的就是在 URL 末尾添加 json 或 xml 然后添加 IP 地址 它将返回所
  • Android 表单验证 UI 库

    有iOSUS2表单验证器 https github com ustwo US2FormValidator用于用户输入验证的库 见下图 我认为该库比默认情况下在某些内容未验证时弹出警报更好 我正在寻找如何在 Android 上做这样的事情 有
  • 如何从另一个屏幕重置 Flutter 中的表单?

    如何重置 清除 flutter 应用程序中的表单字段 一旦数据提交到服务器 在我的应用程序中 我有 2 个页面 第一页输入表格详细信息 如姓名 地址等 第二页是上传图片 第一页将数据推送到第二页 这里我没有进行推送替换 意味着第二页位于第一
  • 验证错误消息中不包含字段名称

    如果我有以下验证 validates inclusion of dob in gt Date new 1900 Time now years ago 18 to date message gt You must be 18 or older
  • 如何访问使用 YUI 检查的单选按钮的值?

    我有以下单选按钮结构 div div
  • 载波扩展白名单不工作

    这是一个类似的案例 但没有解决方案CarrierWave extension white list 似乎不起作用 https stackoverflow com questions 11348510 carrierwave extensio
  • 将 javascript 变量作为 onsubmit href 链接传递到表单/输入字段

    id 喜欢有一个输入框 用户可以在其中输入搜索词 该搜索词可能会传递给一个 javascript 函数 然后该函数将一些 url 段与搜索词组合起来 创建一个完整的 url 到目前为止 它在没有表单的情况下工作正常 但我想向其中添加一个表单
  • 语义 UI 表单验证 - 仅当值不为空时验证某些表单字段

    我有一个表单 其中包含必填字段和可选字段 我正在使用语义 UI 的表单验证行为来验证字段 然而 我想要实现的是 表单验证行为仅在可选字段具有值时才验证可选字段 可选字段示例 div class field div
  • 使用 SingleChildScrollView 时无法向下拖动底部工作表

    我创建了一个带有bottomsheet 和listview builder 的应用程序 在底部 有一个文本按钮 当我将其向上拖动时 底部工作表必须出现 底页上有一张表格 我用 SingleChildScrollView 包裹底部纸张 但是当

随机推荐

  • JavaScript 中的原型继承到底是如何工作的?

    我仍然没有完全理解 JavaScript 中的继承二分法 原型与经典 If the class只是原型上的语法糖 我应该如何去糖化它 您可以向我展示使用类和原型创建 React 元素的不同方法 即没有class React createCl
  • 添加批准 Instagram 客户端的功能

    我有一个经过批准的 Instagram 客户端 即我的应用程序已通过审核并已上线 并且我想向应用程序添加新功能 我听说一些应用程序的客户被撤销 我想知道 我可以在将新功能投入生产之前主动提交新功能以获得批准吗 有人对这个有经验么 我只是想避
  • 在 twitter-bootstrap 中居中模态

    我无法将我的模态集中在各种尺寸的 twitter bootstrap 中 你可以看活生生的例子here http makeshot net v 97dcd3c and here http makeshot net v 3f467c0 只需点
  • 在 Prawn 中使用堆叠边界框时自动启动新页面

    我想在 Prawn 中模拟表格的行为 但无法使用表格 因为我可以在单元格内绘制的内容受到限制 因此 我使用边界框来为每行内的元素创建上下文 我遇到的问题与行有关 我正在尝试这个 require prawn Prawn Document ge
  • 如何在 EF-Code-First 中指定主键名称

    我正在使用实体框架 Codefirst 来创建我的数据库 当我通过 ODBC 连接到 Access 2007 时 模式名称为 dbo pk Jobs 的默认主键似乎扰乱了它 如果我手动编辑名称并删除架构名称并将该主键重命名为 pk jobs
  • Jekyll 2.1 中的 SCSS @import

    我有这个项目结构 Project css main scss sass base layout pages vendor 我的 main scss 文件的内容 import sass base reset import sass base
  • Apache 正在将文件夹重定向到同名的 .html 文件

    我正在尝试将 404 json fales 重定向到 404 json 以 作为内容 但 apache 正在将文件夹重定向到具有相同文件夹名称的 html 文件 并且任何自定义 404 json 重定向都会失败 文件结构 示例1 示例2 e
  • Python 集合与列表

    在Python中 哪种数据结构更高效 更快 假设顺序对我来说并不重要 并且无论如何我都会检查重复项 那么 Python 集比 Python 列表慢吗 这取决于您打算用它做什么 在确定某个对象是否存在于集合中时 集合的速度要快得多 如x in
  • Typescript 重写抽象方法,该方法返回 void

    abstract class Base abstract sayHello void class Child extends Base sayHello return 123 抽象方法的返回类型是void但我可以用数字类型返回来实现它 我没
  • 为什么我的 keras LSTM 模型陷入无限循环?

    我正在尝试构建一个小型 LSTM 它可以通过在现有 Python 代码上进行训练来学习编写代码 即使是垃圾代码 我已将数百个文件中的数千行代码连接到一个文件中 每个文件以
  • 在 Ubuntu 16.04 上安装 OpenCV 时出错

    我一直在尝试使用几个教程在 Ubuntu 16 04 上安装 OpenCV 但总是出现错误 这是我按照本教程得到的最后一个 https github com BVLC caffe wiki Ubuntu 16 04 or 15 10 Ope
  • Android VOIP 应用程序在 Doze 模式下的行为

    我正在 Android 上开发旧版 VOIP 应用程序 它目前不使用 Google Cloud Messaging 技术 只是永远保留自己的 TCP 连接 最近 谷歌推出了 Android M 预览版打瞌睡模式 https develope
  • UITextView beginOfDocument 返回 nil

    我必须获取包含在屏幕上的字符串的位置UITextView 为此 我尝试获取相应的 UITextPosition 问题是UITextView method beginningOfDocument回报nil 同样适用于endOfDocuemen
  • 如何在Python中从流(不是磁盘支持的文件)读取Excel文件?

    XLRD已安装并测试 gt gt gt import xlrd gt gt gt workbook xlrd open workbook Sample xls 当我通过如下所示的 html 表单读取文件时 我可以访问所有值 xls file
  • 我们如何解决 PagerTitleStrip 和 PagerTabStrip 中的空白标题?

    支持 v4 版本 23 0 0 的 PagerTitleStrip 和 PagerTabStrip 存在问题 的标题视图ViewPager使用时PagerTitleStrip or PagerTabStrip以及版本 23 0 0 用于 M
  • 如何使用Guice注射器?

    我正在学习Guice 但我不太清楚如何使用Injector实例 最好是创建Injector在应用程序引导程序上实例一次 并将其设为公共单例 我们是否总是必须使用Injector getInstance SomeClass class 去我们
  • 在 Android Studio 中使用 GameCircleSDK 时,多个 dex 文件定义了 Lcom/amazon/ags/BuildConfig

    我最近将 Android 项目从 Eclipse 导入到 AndroidStudio 中 一切都很顺利 我能够解决大多数问题 除了 GameCircleSDK 库模块的问题 我不断收到以下错误 UNEXPECTED TOP LEVEL EX
  • 如何获取文件 *.apk 在 Android 设备中的位置

    需要以编程方式从 Android 设备检索 apk 文件名的帮助吗 如果我只知道文件名的一部分 任何机构都可以提供一些 Android 方法来执行此操作 甚至可以在 Android 下运行 shell 命令来获取文件位置吗 另外 是否有一种
  • GroupBy 表达式翻译失败

    Model public class Application Key public int ApplicationId get set public DateTime CreatedAt get set public DateTime Co
  • 使用逻辑运算符进行 Laravel 表单验证

    当用户填写消息 文本区域 时 他 她无法填写日期 时间 地点值 仅当 Message 为空且所有这三个字段均已填充时 才会考虑这三个字段 如何使用 Laravel 表单验证来做到这一点 是否可以在Request的规则方法中定义这些逻辑 我是