結構ハマったので、メモ。
前提
- 特定条件のときだけ必須にしたかった。(return が trueの時だけ、第1引数のプロパティに、第2引数のバリデーションルールを追加する)
$validator->sometimes('fuga', ['nullable', new RequiredIfHoge($status)], function ($input) {
return $input->piyopiyo == true;
});
原因
class RequiredIfHoge implements Rule
で値がないときに動かなかった
対応
class RequiredIfHoge implements ImplicitRule
で、nullの時でも入力チェックが発動するようになった。