未経験でエンジニアになるために今年から勉強しているものです。
よく、匿名掲示板の作成方法などはあるかと思うのですが、ユーザ情報を含めたブログ掲示板を作成したいのですが、リレーションでデータを取得できなかったので、こちらでその定義のどこが間違っているか教えていただけたらと思い、投稿しました。ユーザの新規登録やログインに関しては、jetstreamを使用しています。
作成してあるテーブル
作成してあるテーブルについて必要な部分のコードのみを掲載してあります。他に必要なものがある際は教えてください。
PHP
1users # ユーザ情報が入るテーブルになります。 2 id - integer 3 name - string 4 5posts # ブログの投稿内容が入るテーブルになります。 6 id - integer 7 user_id - integer 8 post_id - integer 9 body - string 10 11replies # ブログの記事に返信するコメント内容のテーブルになります。 12 post_id - integer 13 user_id - integer 14 body - string
マイグレーションファイル
作成してあるテーブルについて必要な部分のコードのみを掲載してあります。他に必要なものがある際は教えてください。
usersテーブル
PHP
1 Schema::create('users', function (Blueprint $table) { 2 $table->id(); 3 $table->string('name'); 4 $table->timestamps(); 5 });
postsテーブル
PHP
1 Schema::create('posts', function (Blueprint $table) { 2 $table->id(); 3 $table->unsignedBigInteger('user_id'); 4 $table->foreign('user_id')->references('id')->on('users'); 5 $table->string('body'); 6 $table->timestamps(); 7 });
repliesテーブル
PHP
1 Schema::create('replies', function (Blueprint $table) { 2 $table->id(); 3 $table->unsignedBigInteger('post_id'); 4 $table->foreign('post_id')->references('id')->on('posts'); 5 $table->unsignedBigInteger('user_id'); 6 $table->foreign('user_id')->references('id')->on('users'); 7 $table->string('body'); 8 $table->timestamps(); 9 });
リレーション定義
User
PHP
1 public function posts() 2 { 3 return $this->belongsToMany(Post::class); 4 } 5 6 public function replies() 7 { 8 return $this->belongsToMany(Reply::class); 9 }
Post
PHP
1 public function user() 2 { 3 return $this->belongsToMany(User::class); 4 } 5 6 public function reply() 7 { 8 return $this->hasMany(Reply::class); 9 }
Reply
PHP
1 public function user() 2 { 3 return $this->belongsTo(User::class); 4 } 5 6 public function posts() 7 { 8 return $this->belongsTo(Post::class); 9 }
行いたいこととしては、ブログにコメントしたユーザ名を取得したいです。
環境
Laravel 8.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/30 10:04
2020/11/30 10:11
2020/11/30 10:15
2020/11/30 10:23
2020/11/30 10:25
2020/11/30 12:44
2020/11/30 14:04
2020/12/01 06:33
2020/12/01 06:49 編集