質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
laravel-admin

laravel-adminは、Laravelに対して管理者用インタフェースを実装するために必要な部品を補うライブラリ。コントローラーでのCRUD処理が可能で、フォームやテーブルに使う値の整形およびテンプレートも提供されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1485閲覧

laravel-adminの複数選択できるチェックボックスの必須チェックについて

hanamako

総合スコア23

laravel-admin

laravel-adminは、Laravelに対して管理者用インタフェースを実装するために必要な部品を補うライブラリ。コントローラーでのCRUD処理が可能で、フォームやテーブルに使う値の整形およびテンプレートも提供されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/01/17 08:50

laravel-adminを使って管理画面を構築しているのですが、複数選択できるチェックボックスの必須チェックがうまくできません。
うまくいかなったコードは、以下です。

$form->checkbox('category',"カテゴリ")->options([ 1 => "ニュース", 2 => "トピックス", ])->required();

nameが配列になった際の対応ができていないからだと思うのですが、いい解決方法を教えていただけないでしょうか。ネットでしらべても記事が少なくて困ってます。

よろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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/18 09:26

編集2022/01/18 09:27
mix-peach

総合スコア1910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hanamako

2022/01/20 03:11

返事が遅くなりました。ありがとうございます。自分でも、同じことに気づいて直しました。ちょっとエラーメッセージの表示の仕方が違うのがきになりますが、これをつかうようにしました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問