У меня есть массив элементов, отправленный на контроллер в виде JSON в ключе формы элементов.
[{
"sku": "w-hook-as1",
"qty": 2,
"cost_ex_tax": "34.22",
"tax_rate": "0.2"
}]
Здесь он преобразуется в массив:
$request->merge(['items' => json_decode($request->items, true)]);
и проверено на соответствие правилу:
'items.*.sku' =>[
'required',
Rule::exists('products')->where(function ($query) {
$query->where('company_id', Auth::user()->company_id);
})
],
Существующее правило работает, если ключ массива, против которого его проверка существует, при условии, что ключ существует. Если я просто отправлю:
[{
"qty": 2,
"cost_ex_tax": "34.22",
"tax_rate": "0.2"
}]
Затем проверка проходит.
Есть ли способ проверить, существует ли ключ, а также проверить его содержимое? Я ожидал бы, что необходимая проверка делает это, но это, кажется, не работает.
Как проверить массив в Laravel? - Этот ответ предлагает проверить, что это массив с x количеством элементов, но все еще не проверяет, какие именно ключи я ищу, там.