入力内容によってバリデーションを制御したい場合など、入力データの取得方法を毎回忘れるので。
以下のどちらかで、入力内容を取得できる。
$this->input() $this->request->all()
使用例は以下な感じになります。
ExampleRequest.php
use Illuminate\Validation\Rule; class ExampleRequest extends FormRequest { public function rules() { // 入力内容を変数に代入 $input = $this->input(); return [ 'number' => [ // type が A もしくは、sort が X ならば必須 Rule::requiredIf(function () use ($input) { return $input['type'] === 'A' || $input['sort'] === 'X'; }), 'between:0,99', ], ]; } }
コメント