LaravelでPivotで中間テーブルを簡単に作る方法【belongsToManyリレーション】

Laravelデータベース

Laravelでは二つのテーブルを組み合わせて、簡単に中間テーブルを作ることができます。

どのようにして作るか、実際の手順をステップごとに解説していきます。

今回は、ユーザーテーブルとロール(役割)テーブルを組み合わせて、【ユーザーロールテーブル】を作っていきます。

その際、ユーザーテーブルとロールテーブルの間には、belongsToManyメソッドを使って、リレーションを構築します。

言葉はむずかしいですが、手順自体はわりとシンプルなので、まずは一度つくってみてください。

LaravelでPivotテーブルを簡単に作る方法【belongsToMany】

次の6ステップで操作を解説していきます。

  1. ユーザーモデルにロールモデルへのリレーション追加
  2. ロールモデルとロールテーブル作成
  3. ロールモデルにユーザーモデルへのリレーション追加
  4. ロールテーブルのマイグレーションファイル編集
  5. ユーザー×ロールテーブル作成
  6. テスト

(バージョンはLaravel8を使って説明していきます。)

①ユーザーモデルとテーブル作成

ユーザーモデルはデフォルトで準備されています。

App\Models\Userとのリレーションを加えます。

Pivotテーブルにタイムスタンプをいれる

なお、デフォルトでは自動的にタイムスタンプ(created_at、updated_atへの値) がはいりません。

->withTimestamps(); を付けておくと、タイムスタンプ(created_at, updated_at )が自動的に維持されます。

②ロールモデルとロールテーブル作成

ロールモデルとロールテーブルを作成します。

③ロールモデルにユーザーモデルへのリレーション追加

App\Models\Roleファイルを開き、次を追加してください。

Userモデルとのリレーションを加えます。

④ロールテーブルのマイグレーションファイル編集

database/migrations の中にできたマイグレーションファイルを編集します。

次の1行を加えてください。

⑤ユーザー×ロールテーブル作成

ユーザーテーブルとロールテーブルを連結させた【role_user】テーブルを作ります。

◆次のようにコマンドを打ってください。

◆database/migrations の中にできたマイグレーションファイルに次の2行を加えます。

◆マイグレートします。

⑥テスト

これで準備完了です。

最後にテストしてみましょう。

phpMyAdminにログインし、データベース内に【role_user】テーブルを確認してみてください。

テスト用に、roleテーブル、userテーブル、role_userテーブルにダミーで情報をいれておきます。

その後、ルート設定ファイル(routes/web.php)に下記を加えます。

Laravelを起動し、【/pivot】ページを確認してみます。

上記のように、role_userテーブルにいれた情報が取り出せれば、無事成功。

ロールを割り当てたり、取り外したりするには attachやdetachというメソッドが使えます。

詳しくは、こちらの記事にて解説しています。

 

Laravelデータベース Laravel入門講座

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版テキストに加え、Laravel8版~Laravel11版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新版テキストに加え、Laravel8版からLaravel11版もご用意しています♪

【Laravelをチームで学びたい方へ】
学習管理・コード添削・ライブ講義など5個の特徴
▶法人プランの詳細はこちら
ここからのお申込みで10%オフ!
※お支払い前に「ブログ申込み」とお伝えください

Laravelの本を書きました。【改訂版】でます!


ひつじが目印♪クリックするとamazonページへ。

書籍版【Laravelの教科書】改訂版でます。
最新版Laravel12に対応。
現在Amazonにて予約受付中。

ご予約いただいた方に、特典「いちばんやさしいLarave命名規則の説明」プレゼント♪
詳しくは下記ボタンをクリック

書籍の詳細と予約特典を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました