Laravelでフォームリクエストでのカスタムバリデーションを実装しようとしています。
PHP
1class HogeRequest extends Request 2{ 3 // 通常のバリデーション 4 public function rules() { 5 $this->check_list = array (12,45,67,87,98); 6 ... 7 ... 8 } 9 10 // ここでカスタムバリデーション 11 public function withValidator(Validator $validator) { 12 $validator->after(function ($validator) { 13 foreach ($this->check_list as $key => $value) { 14 if ($this->hoge_.$value > 50) { 15 $validator->errors()->add('hoge', 'エラーです'); 16 } 17 // 下記のようなこともしたいです 18 if (count($this->hoge_check_$value) > 5) { 19 $validator->errors()->add('hoge', 'エラーです'); 20 } 21 } 22 23 }); 24 } 25}
フォームからくる値は、$this->hoge_12とかでとれるのですが、上記のように$this->check_listに配列でチェックしたい値が入っていて、foreachで回しながら、$this->hoge_.$valueみたいな感じでとりたいのですが、うまくいきません。
ちなみに$this->hoge_の後ろの数字は、ランダムでいろいろ変わってきます。
・追記
$this->hoge_check_$valueにチェックボックスの値が入っていて、チェックできるチェックボックスの数でエラーチェックしたいです。ただ、$this->hoge_check_$valueだと思うように値がとれません。
このように、$this->でわたってくる名前が動的な場合、どのようにエラーチェックすれば良いのでしょうか。
ご教示お願いいたします。
追記
HTMLも追記します。
チェックボックスには5つ以上チェックをつけたらエラーとしたいです。
HTML
1<!-- テキスト部分 --> 2<input type="text" name="hoge_45" value="40"> 3<input type="text" name="hoge_67" value="50"> 4<input type="text" name="hoge_70" value="60"> 5<!-- チェックボックス部分 --> 6<input type="checkbox" name="hoge_check_12[]" value="1"> 7<input type="checkbox" name="hoge_check_12[]" value="2"> 8<input type="checkbox" name="hoge_check_12[]" value="3"> 9<input type="checkbox" name="hoge_check_12[]" value="4"> 10<input type="checkbox" name="hoge_check_12[]" value="5"> 11<input type="checkbox" name="hoge_check_12[]" value="6"> 12<input type="checkbox" name="hoge_check_12[]" value="7"> 13コード
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/30 05:26
退会済みユーザー
2019/10/30 05:40 編集
2019/10/30 06:05
退会済みユーザー
2019/10/30 06:08 編集
2019/10/30 06:16
退会済みユーザー
2019/10/30 06:17 編集
2019/10/30 06:20