laravel - Laravel 更多维度数组验证
问题描述
有一个请求。我如何验证它?我尝试使用 foreach,但我不工作。谢谢。
请求:
'show_data' => [
0 => [
'buyer_search_property_id' => 1,
'date_of_show' => '2019-01-01',
'comment' => 'Nice flat',
],
1 => [
'buyer_search_property_id' => 2,
'date_of_show' => '2019-01-31',
'comment' => 'Too small',
], etc...
],
我试过这个,但它不起作用(当然...... :))
public function rules()
{
$rules = [];
foreach ($this['show_data'] as $key => $item) {
$rules["show_data[$key]['buyer_search_property_id']"] = 'required';
$rules["show_data[$key]['date_of_show']"] = 'required|date';
$rules["show_data[$key]['comment']"] = 'required';
}
return $rules;
}
解决方案
您可以像这样轻松地在 laravel 中验证数组:
public function rules()
{
return [
"show_data.*.buyer_search_propery_id" => "required",
"show_data.*.date_of_show" => "required|date",
"show_data.*.comment" => "required",
];
}
如果您希望您的方法有效,请执行以下操作:
public function rules()
{
$rules = [];
foreach ($this['show_data'] as $key => $item) {
$rules["show_data.$key.buyer_search_property_id"] = 'required';
$rules["show_data.key.date_of_show"] = 'required|date';
$rules["show_data.$key.comment"] = 'required';
}
return $rules;
}
只需删除内部方括号和引号并在索引中添加点,因此更改$rules["show_data[$key]['date_of_show']"]
为$rules["show_data.$key.date_of_show"]
推荐阅读
- rxjs - 重试 Observable 时重试不会导致重试 ajax 调用
- jquery - 单个元素的多个验证规则
- azure - 如何设置 Azure 虚拟机端口规则以允许 PsExec 流量?
- sapui5 - 在 XML 视图中绑定到 OData 集合的长度属性
- java - Android Firestore 将文档引用数组转换为 List
- laravel - 如何在 laravel 刀片中显示数组的动态键?
- javascript - 如何在脚本模块中使用 vaadin-text-field
- rest - 在 JSON-LD 编码的响应正文中返回 JWT 身份验证令牌的符合标准的方式?
- javascript - 需要在表单中选择标签
- spring - Thymeleaf 默认片段,以防解析失败