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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

0回答

496閲覧

【Laravel 8】既存テーブルにある重複の値のみを抽出して新しいテーブルの追加するためのリレーションについて

leoairen

総合スコア122

Laravel

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2022/05/09 17:11

編集2022/05/10 14:56

解決したいこと

会員制掲示板のユーザー登録時にgroup_idとgroupの情報が重複しますので、手探りでテーブルを追加しました。今のところは問題ないのですが、リレーションの作り方が妥当かどうか不安ですが、ご指摘などありましたらいただけますでしょうか。

該当するソースコード

Group.php(今回追加となったGroupのテーブルのモデル)

1 2<?php 3 4namespace App\Models; 5 6use Illuminate\Database\Eloquent\Factories\HasFactory; 7use Illuminate\Database\Eloquent\Model; 8use App\Models\User; 9 10class Group extends Model 11{ 12 use HasFactory; 13 protected $fillable = [ 14 'name', 15 'group', 16 'group_id', 17 ]; 18 public function post() { 19 return $this->belongsTo('App\Models\Post'); 20 } 21 public function comment() 22 { 23 return $this->belongsTo('App\Models\Comment'); 24 } 25 public function user() { 26 return $this->belongsTo('App\Models\User'); 27 } 28} 29

User.php

1 2中略 3 4 public function belongs() { 5 return $this->belongsToMany('App\Models\Belong'); 6 } 7 8} 9 10

RegisterController.php

1 2 protected function create(array $data) 3 { 4 // userテーブルのデータ 5 $attr = [ 6 'name' => $data['name'], 7 'email' => $data['email'], 8 'password' => Hash::make($data['password']), 9 'group' => $data['group'], 10 'group_id' => $data['group_id'] 11 ]; 12 13 $groupattr = [ 14 'name' => $data['name'], 15 'group' => $data['group'], 16 'group_id' => $data['group_id'] 17 ]; 18 19 $user = User::create($attr); 20 $group = Group::create($groupattr); 21 } 22 23}

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問