在我的FormRequest我需要驗證,如果選擇的類別實際上存在于類別陣列中。
我用withValidator方法解決了我的問題,我手動檢查類別是否存在。
但是,我覺得必須有更好的方法來做到這一點。我查看了驗證檔案,但找不到合適的。
有沒有人解決過這個問題,或者你知道如何更好地做到這一點?
謝謝你。
class StoreWarehouseItemRequest extends FormRequest
{
public function rules()
{
return [
'name' => 'required',
'category' => 'required|integer',
'specification' => 'nullable|string',
'recipient' => 'nullable|string',
'unit' => 'nullable|string',
'sellers_code' => 'nullable|string',
'note' => 'nullable|string',
];
}
public function withValidator(Validator $validator)
{
$cat = $validator->getData()['category'];
$cats = WarehouseItem::CATEGORIES;
$validator->after(
function ($validator) use ($cat, $cats) {
if (!isset($cats[$cat])) {
$validator->errors()->add('category', 'Kategória musí by? vybraná zo zoznamu.');
}
}
);
}
}
uj5u.com熱心網友回復:
你可以使用 Laravel 的in:foo,bar驗證器。
return [
'name' => 'required',
'category' => ['required', 'integer', Rule::in(WarehouseItem::CATEGORIES)],
'specification' => 'nullable|string',
'recipient' => 'nullable|string',
'unit' => 'nullable|string',
'sellers_code' => 'nullable|string',
'note' => 'nullable|string',
];
此外,如果您正在查看該鍵是否存在于WarehouseItem::CATEGORIES陣列中,您可以array_flip(WarehouseItem::CATEGORIES)對其進行操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420994.html
標籤:
