0

次の検証ルールがあります。

[
    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 == trueMenuItem::MENU_ITEM_PRICINGsideprice

4

1 に答える 1