8,170viewsこんにちは、最近パワプロ2016を購入しホモころがし理論に勤しむ制作の奥田です。パワプロ2016神ゲー確定ですね。今期アニメは「甲鉄城のカバネリ」と「Re:ゼロ」が圧倒的覇権アニメですね。WordPressなどでもうおなじみですが、フレームワークで投稿とタグの関係を作るとき「多対多」のリレーションが必須になってきます。LaravelにはBelongsToManyというリレーションが用意されています。BelongsToManyとは以下のように中間テーブルを使用したJOINの方法です。post_idtag_id今回はLarabelを使ったBelongsToManyの実装方法と検索方法までをやってみたいと思います。投稿画面にタグの選択を配置する保存時に同時にタグも保存するタグから記事を検索するデータベースを作成まず、それぞれのDBを作成します。postsテーブルやtagsが存在する場合でもそれぞれに影響を与えることなく実装できるのもこのリレーションの素晴らしいところですね。#すでにある場合は必要ありません。#すでにある場合は必要ありません。create_post_tag_table各migrationファイルは以下のようにします。$table->integer('tag_id');});マイグレーションします。migrateテーブルの作成ができたらモデルを作成し、Postモデルにリレーションを設定します。$this->belongsToMany('App\Tag');}投稿画面にタグの選択を配置するタグの追加画面は省略します。それぞれの管理画面に合った投稿画面を作成してください。投稿画面にタグ選択用のチェックボックスを実装します。Viewにセットします。$tags,]);ビュー側で表示します。}}</label>@endforeach保存時に同時にタグも保存するデータベースに保存する際に同時に保存します。[]));$post->save();タグから記事を検索する検索する際はpost_tagテーブルから一致したものを検索し、それをwhereInに入れることで実装します。投稿画面と同じようにして検索フォームにcheckboxを作成します。}}</label>@endforeachPostsController.phpに以下のメソッドを追記します。$query->get()->lists("post_id");}絞り込みをする箇所で以下のようにして一致したidからpostsテーブルのidを絞り込みます。$this->getPostIdByTags($tags));}これで検索の際に一致したタグを持つ記事が絞り込めます。最後に「多対多」のリレーションについて簡単にご説明しました。LaravelでEloquentを使用するとデータベースの設計など少し進んだ分野も手軽に学習できるメリットが有ると思います。お役に立ててください。menuWorksBlogInformation。