質問: Validator::make($arr, [ 'item' => [ 'exists:items,item_no', Rule::exists('items', 'item_no')->where('category', [1,2]), ], ], $messages); return $validator; } ``` ↓↓この部分を修正する必要があるのですが、その正しい記述方法がわかりません。 ``` 'exists.where' => 'このカテゴリーのアイテムは選択できません', ``` ちなみに 'exists' => 'このアイテムナンバーは存在しません', の部分は正しく表示できてるので、 'exists.where' => 'このカテゴリーのアイテムは選択できません', の部分だけ修正すれば求めている結果が得られそうです。 アドバイスお願いいたします。
回答: https://readouble.com/laravel/6.x/ja/validation.html の「指定フィールドにカスタムメッセージ指定」を見る感じ、 exists.whereという書き方はできないかと。。 (whereはバリデーションルールではないですし。) あと、where('category', [1,2])って書き方できるんでしたっけ? (第二引数に配列は指定できないかと) ぱっと調べた感じ、Rule::existsではなくて、バリデーションルールのnot_inやinなどを使って、そのメッセージをカスタマイズするのが良いのではないかと。。