laravel - 使用 required_with 和 required_with_all 对 3 个字段进行 Laravel 5.7 验证不起作用
问题描述
required_with
我的问题是使用和required_with_all
用于 Laravel 验证的逻辑是如何工作的?
我已阅读文档,但无法从文档链接中获得任何信息
我正在申请 3 个不同的领域
让我现在给你我的例子来得到我想要的
'start' => 'nullable|required_with:end',
'end' => 'nullable|required_with:start',
'repeat' => 'nullable|required_with_all:start,end',
如果我只提交重复字段,则不会在 Laravel 中执行验证。
您可以从我复制的代码中删除 nullable,如果您仅提供重复字段,则仍然不会执行验证。
解决方案
OP在这里真正想要的是:
- 能够在不重复出现的情况下提交开始和结束
- start 和 end 一起需要
- 如果存在开始或结束,则无法提交重复
use Illuminate\Validation\Validator;
class MyFormRequest extends FormRequest
...
public function rules()
{
return [
'start' => 'required_with:end|required_without:repeat',
'end' => 'required_with:start|required_without:repeat',
'repeat' => 'required_without_all:start,end',
];
}
public function withValidator(Validator $validator)
{
$validator->after(function ($validator) {
if ((!$this->input('start') || !$this->input('end')) && $this->input('repeat')) {
$validator->errors()->add('repeat', 'The repeat field is required when start and end are present.');
}
});
}
}
推荐阅读
- perl - 如何使用 system() 从 CGI 文件调用异步 Perl 脚本
- android - 多次调用分页库中的回调
- python - 从文件添加的列表中的元素未被识别为列表元素
- python - 在python中附加现有的json数据并将更新的文件写回json
- amazon-web-services - 如何在具有持久卷的 EKS 集群上设置可扩展的 Jenkins?
- mysql - 不同表中的sql语句总和和数量使用?
- android - 模型中的活动参考
- python - 我怎样才能让许多用户在同一个文件上工作?
- python - 基于大序列和异或运算实现问题的最有效方法
- mysql - #2014 - 命令不同步;您现在无法运行此命令 SQL 子查询