次の検証ルールがあります。
[
MenuItem::MENU_ITEM_NAME => 'required|unique:menu_items,name',
MenuItem::MENU_ITEM_DESCRIPTION => 'nullable',
MenuItem::MENU_ITEM_CATEGORY => 'required|exists:categories,id',
MenuItem::MENU_ITEM_SIDE => 'nullable|boolean',
MenuItem::MENU_ITEM_SIDE_ONLY => 'nullable|boolean',
MenuItem::MENU_ITEM_IMAGE => 'nullable',
MenuItem::MENU_ITEM_AVAILABLE => 'nullable|boolean',
MenuItem::MENU_ITEM_ACTIVE => 'nullable|boolean',
MenuItem::MENU_ITEM_PRICING => 'required',
]
私が実装する必要があるこのテスト ケースまで、それらは正常に動作します。
別名MenuItem::MENU_ITEM_PRICING
は配列の配列です。MenuItem::MENU_ITEM_SIDE
が渡されtrue
たときpricing
に、その特定のアイテムのいくつかの値を持つサブ配列が配列に含まれている必要があることを確認する必要があります。
元:
[
MenuItem::MENU_ITEM_SIDE => false,
MenuItem::MENU_ITEM_PRICING => []
]
前の例は有効です。しかし:
[
MenuItem::MENU_ITEM_SIDE => true,
MenuItem::MENU_ITEM_PRICING => []
]
は無効です。次のようにする必要があります。
[
MenuItem::MENU_ITEM_SIDE => false,
MenuItem::MENU_ITEM_PRICING => [['sideprice' => 2.20]]
]
という名前のキーを持つサブ配列を含める必要がある場合、 (FormRequest
クラス内で) チェックするにはどうすればよいですか?MenuItem::MENU_ITEM_SIDE == true
MenuItem::MENU_ITEM_PRICING
sideprice