やりたいこと
required_ifで 「◯◯が▲▲の場合、□□も入力してください」で、▲▲がフラグ的なものでそのまま出したんでは伝わりづらいのでカスタムしたかった
コード
tags の1つ目は、tag_requiredが1の場合に必須にしたい。
Validator::makeの第2引数までの指定だと
「tag_requiredが"1"の場合、tags.0を指定してください」
などとイケてないメッセージがでる(フォーマットは多言語設定に準じる)
Controller.php
$validator = Validator::make( $request->all(), [
'id' => 'bail|required',
'tags' => 'bail|required|array|max:10',
'tags.0' => 'bail|required_if:tag_required,1|max:20',
'tag_required' => 'bail|required|boolean'
], [], [
'id' => 'ID'
'tags' => 'タグ',
'tags.0' => 'タグ1番目',
'tag_required' => 'タグの必須指定'
] );
$validator->addCustomValues([
'tag_required' => ['1' => '1つ以上必須にする' ]
]);
if($validator->fails()) {
// any
}
こうすると、
「タグの必須指定が"1つ以上必須にする"の場合、タグ1番目を指定してください」
と、まっとうな日本語で出すことができる。
ひっっっさしぶりのphpで色々アレ