formの要素のバリデーションは、rules()
でも定義できます。
複数選択のチェックボックスの場合は、
php
1$form->checkbox('category',"カテゴリ")->options([
2 1 => "ニュース",
3 2 => "トピックス",
4])->rules('required');
で、期待するバリデーションチェックの挙動になるはず。。。
rulesに渡す引数は、laravel本来のバリデーションと同じようにルール指定ができます。
これは、一度POSTして内部でのバリデーションチェックにひっかかって、
入力画面に戻ってくるようなフローになります。
required()
だと、画面上のチェックボックスのhtmlタグそのものにも、required属性
が付与されちゃうと思うので、チェックボックスを全部チェックしないと送信ができない。。って状態ではないかと思います。
この、送信ボタンを押すと即時チェックして入力欄付近にエラーメッセージがぴょこっと出るのは、
ブラウザ任せのやつなので、配列形式の名称のチェックボックスのrequiredでは、期待する通りには動かないのです。
なので、もし即時チェックもしたいなら、自前でjsを組んでチェックする必要があると思います。
と、回答かいてみたのですが、、
手元のlaravel-adminが古かった(1.8.1)ので、バージョンが違う場合はうまく行かないかもです。
その場合はご容赦ください。
なにかしらの参考になりますように。。!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/20 03:11