![](/img/trans.png)
[英]How to get value from input fields with two dimensional arrays in Laravel
[英]How to pair two arrays input validation in Laravel?
我有一個帶有規則的表單請求
return [
'brand_id' => ['required', 'integer'],
'color_id' => ['required', 'integer'],
'name' => ['required', 'max:255', 'string'],
'capital' => ['required', 'string'],
'price' => ['required', 'string'],
'size' => ['required', 'string', 'max:255'],
'incoming.*' => ['required', 'integer', 'gte:outgoing.0'],
];
我想通過它的每個索引來配對驗證,可以在 Laravel 中做到這一點嗎?
我結束了這種方式
foreach ($this->incoming as $key => $value) {
$incoming["incoming.{$key}"] = ['required', 'integer', "gte:outgoing.{$key}"];
}
return array_merge([
'brand_id' => ['required', 'integer'],
'color_id' => ['required', 'integer'],
'name' => ['required', 'max:255', 'string'],
'capital' => ['required', 'string'],
'price' => ['required', 'string'],
'size' => ['required', 'string', 'max:255'],
], $incoming);
我會建議更優雅的方式:
return array_merge(
[
'brand_id' => ['required', 'integer'],
'color_id' => ['required', 'integer'],
'name' => ['required', 'max:255', 'string'],
'capital' => ['required', 'string'],
'price' => ['required', 'string'],
'size' => ['required', 'string', 'max:255'],
],
...array_map(
fn ($key) => ["incoming.{$key}" => ['required', 'integer', "gte:outgoing.{$key}"]],
array_keys($this->incoming),
)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.