laravel - Laravel 验证规则 - 如何可选,但前提是另一个条件为真
问题描述
如何使用验证制定自定义规则,以便该字段可以为空“因为”调用函数结果为真,否则,该字段成为必需的。
当然我尝试使用'nullable',但是即使该字段为空,Validation 也应该执行 checkAreasDiff() 函数来验证该字段在更新期间是否可以为空。
在我的控制器中,我创建了一个函数:
private function validator_update(array $data) {
\Validator::extend('areas_diff', function($attribute, $value, $parameters, $validator) {
return checkAreasDiff();
}, 'VALIDATOR AREAS_DIFF OK.');
/**
* RULES
*/
$rules = [
'fiscalizoarea' => 'areas_diff',
];
/**
* Return \Validator
*/
return \Validator::make($data, $rules, $msgs);
}
解决方案
如果我正确理解了这个问题,您是否希望仅当另一个字段不为空时才需要一个字段?
已经有一个 Laravel 规则:required_with。
required_with:foo,bar,...
仅当存在任何其他指定字段时,验证中的字段才必须存在且不为空。
或者,如果我让你的逻辑回到前面:required_without
required_without:foo,bar,...
仅当任何其他指定字段不存在时,验证中的字段才必须存在且不为空。
推荐阅读
- python - 如何在python中修改熊猫的排名
- javascript - 旋转 3d javascript 精灵
- c - libssh2 SFTP 流水线化多个文件:sftp_read() 内部错误
- visual-studio - 安装脱机 NuGet 包抛出异常
- xslt - 为什么我的 XSLT 不能提取正确的值?'样式表错误'
- java - Springfox / Swagger 不解析多态字段
- c - 添加自定义机器时 QEMU 中的分段错误(核心转储)
- c++ - 矢量指针和检索数据
- apache - Apache 在步骤 NAMESPACE 失败
- amazon-web-services - aws ec2:最近我通过了高比率 1/2 检查,我怎样才能发现我的实例有什么问题?