سلام
من برای بخش کامنتها از polymorphic استفاده می کنم. کامنتهای اصلی به درستی کار می کنن ولی برای نمایش کامنتهای تو در تو اجرا نمیشه و آرایه خالی رو بر می گردونه.
کد زیر رو داخل مدل Comment تعریف کردم.
public function comments()
{
return $this->hasMany(Comment::class, 'parent_id','id');
}
و در کنترلر Articleها با استفاده در ستور زیر در single page اطلاعات رو return می کنم. با اینکه parent_id بیشتر از 0 هست ولی کامنتهای child رو نشون نمیده.
$comments = $article->comments()->where('approved', 1)->where('parent_id', 0)->latest()->with(['comments' => function ($query) {
$query->where('approved', 1)->latest()->get();
}])->get();
میخواستم بدونم ایراد از کجاست؟
به مثال خود داکیونت لاراول مراجعه کنید. دقیقا واسه ساخت سیستم کامنت مثال زده.
https://laravel.com/docs/5.8/eloquent-relationships#one-to-many-polymorphic-relations
شما مثل اینکه دقت نکردی. گفتم اصل کد اجرا میشه. کامنتهای child رو شناسایی نمیکنه...
شاید پاسخ شما همینجا باشد
الان این کد با کدی که خودم اون بالا گفتم کار نمیکنه چه فرقی داره؟
@ali.bayat
کامنت هایی که پرنت ایدی ۰ دارند خودشون پرنت هستن. به ازای هر پرنت میخواد فرزنداشو لود کنه.
اومده اول پرنت ها رو گرفته بعدش با with چایلدهای هر پرنت رو لود کرده.