【发布时间】:2020-07-21 23:47:20
【问题描述】:
Laravel 版本:7.x
我已经用硬编码的有效device_company_id(与所选设备相关联)测试了代码,它工作正常。
表格
device_companies
|- id
|- company_id
|- title
|- ...
devices
|- id
|- device_company_id
|- ...
请求数据
Array
(
...
[devices] => Array
(
[0] => Array
(
[device_company_id] => 1
[device_id] => 2
[device_inventory_id] => null
[amount] =>
[refundable] =>
[description] =>
)
)
)
规则:
...
$rules = array_merge($rules, [
'devices' => [
'required',
'array'
],
'devices.*.device_company_id' => [
'required',
'integer',
'exists:device_companies,id,company_id,' . auth()->user()->id
],
'devices.*.device_id' => [
'required',
'integer',
'exists:devices,id,device_company_id,devices.*.device_company_id'
],
]);
...
我需要 exists 验证器的自定义验证规则来验证 device 是否实际上属于选定的 device_company。因为我不希望任何人打开检查工具,所以更改值并导致应用程序出现错误或类似情况。
【问题讨论】:
-
这听起来像您需要一个自定义验证规则。请参阅此参考:laravel.com/docs/7.x/validation#custom-validation-rules
-
感谢@DanielPetrovaliev,但我必须告诉您,我浏览了文档并找不到解决方案。但是,我找到了解决这个问题的方法。我很快就会发布它。虽然,它有效,但我觉得这可以改进。如果有人找到解决此问题的更好方法,请发布您的答案。谢谢你:)
标签: laravel validation exists rules