解決したいこと
会員制掲示板のユーザー登録時に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}
あなたの回答
tips
プレビュー