🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
laravel-admin

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

Laravel

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

Q&A

解決済

1回答

2173閲覧

laravel-adminでrelation先をチェックボックスで検索

syun-03

総合スコア7

laravel-admin

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

Laravel

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

0グッド

0クリップ

投稿2021/02/18 15:12

編集2021/02/20 08:07

laravel-adminで管理画面構築しておりますが
gridの検索画面での検索項目(filter)について質問です。

Cstuomerに対して、下記の通りhasOneを定義しています。

public function tag() { return $this->hasOne('App\Tag'); }

このtag内部では、formからチェックボックスで登録し、下記のような状態でデータ保持しております。
["1","2"]

gridの検索画面にて、このうち「1」を含むユーザの検索を行いたいのですが
どのように記述すればいいかご存じでしょうか。

ご存じの方いらっしゃいましたら、ご教示頂けますでしょうか。

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

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

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

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

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

Lulucom

2021/02/19 07:36

> tag内部ではJSONで複数値を持っている この辺り、より詳しい情報を追記された方が回答が付きやすいのではと思いました。
syun-03

2021/02/20 08:07

ご連絡ありがとうございます。情報追記致しました。
Lulucom

2021/02/20 08:22

掲載された例では "1", "2" ですが、実際にはteratailのタグ("Laravel", "Laravel-admin" など)のような文字列が登録されるということでしょうか。
guest

回答1

0

ベストアンサー

Tagモデルに対応するtagsテーブルにどのようなカラムがあるのか分かりませんでしたが、
そのJSONが例えばnameというカラムに保持されていると仮定すると、以下でどうでしょうか。

php

1$grid = new Grid(new Customer()); 2... 3$grid->filter(function ($filter) { 4 $filter->like('tag.name'); 5});

ただ、CustomerとTagを1対多にしてタグをJSONで保持するよりも、CustomerとTagを多対多(あるいは多対多(ポリモーフィック))にすると扱い易いのではないかとは思いました。

投稿2021/02/20 09:11

Lulucom

総合スコア1899

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

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

syun-03

2021/04/08 14:08

ご回答ありがとうございます。 ポリモーフィックはできるだけ避けたいので、JSON形式で保存しております。 ご連絡頂いた方法ではJSON形式の検索は正しくできませんでしたが、ベストアンサーとさせていただきます。
Lulucom

2021/04/09 04:31

> ポリモーフィックはできるだけ避けたいので ポリモーフィックの多対多ではなく、通常の多対多で良いと思います。ただ、既存のコードの変更も必要になるから避けたいということかもしれせんね。 > ご連絡頂いた方法ではJSON形式の検索は正しくできませんでした 動作確認はしたのですが、仮定した部分が異なるのかもしれませんね。 実際のテーブル名、カラム名、レコードの例を使って質問を書かれた方が良いかなと思いました。 未解決でしたらベストアンサーを外していただいても大丈夫ですよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問