Merhaba çok basit bir şekilde yorum ve post tablom var ikisi arasında many-to-many ilişkisi var.
Post Modelim :
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
public function User(){
return $this->belongsTo(User::class,'author_id','id');
}
public function comments(){
return $this->belongsToMany(Comment::class);
}
}
Comment Modelim :
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
use HasFactory;
public function author(){
return $this->belongsTo(User::class,'commentAuthorId','id');
}
public function posts(){
return $this->belongsToMany(Post::class);
}
}
Terminalde tinker ile $post = Post::find(1) && $post->comments
dediğimde
$post->comments
=> Illuminate\Database\Eloquent\Collection {#4072
all: [
App\Models\Comment {#4283
id: 1,
commentAuthorId: 1,
comment: "Yorum 1 ",
created_at: "2021-01-05 21:26:06",
updated_at: "2021-01-05 21:26:06",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#4034
post_id: 1,
comment_id: 1,
},
},
App\Models\Comment {#4071
id: 2,
commentAuthorId: 2,
comment: "Yorum2",
created_at: "2021-01-07 03:23:40",
updated_at: "2021-01-07 03:23:40",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#4282
post_id: 1,
comment_id: 2,
},
},
],
}
olarak geliyor ama blade yapısında ekranda [] olarak gösteriyor yani boş bir arr dönüyor sebebi nedir neyi yanlış yapmaktayım ?
blade:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Paylaşımlar</div>
<div class="card-body">
@foreach(auth()->user()->posts as $post)
<h1>Yazar : {{$post->user->name}}</h1>
<p>{{$post->content}}</p>
<hr>
Comment :
{{$post->comments}}
@endforeach
</div>
</div>
</div>
</div>
</div>
@endsection