سلام وقت همگی بخیر
من دو تا جدول دارم :
1- Post
2- Status
پست هایی که ارسال میشوند این قابلیت برای مدیر گذاشتیم که اگر دوست داشت اون ها رو وضعیتش رو غیرفعال بکنه یا دوباره فعال بکنه
( حتما هم هر بار که فعال یا غیرفعال میشه باید تاریخ و ساعتش ثبت بشه )
حالا میخوام پست هایی رو نمایش بدم که فعال هستند، اما نمیشه
رابطه یک به چند هست .
Model POST :
public function Post()
{
return $this->hasMany('App\Post');
}
public function activePost()
{
return $this->hasOne('App\Post')->latest()->where('status', '=' ,0);
}
Model Status :
public function status()
{
return $this->belongsTo('App\Status');
}```
Controller برای دریافت اطلاعات :
return POST::where([['deleted', 0]])->has('activePost')->orderBy('id', 'desc')->get();
ممکنه پستی داشته باشیم که رکوردی داخل Status نداشته باشه، چون ممکنه فعال یا غیرفعال نشده باشه، به همین دلیل مشکلی در نمایشش دارم .
ممنون میشوم اگر کمک کنید
@zafari.ma.8
باز هم درست کار نمیکنه، شرط رو اجرا میکنه اما آخرین رکورد رو نمیاره، اون رکوردی که 1 هست رو میاره .
فرض کنید جدول من این رکورد ها رو داره :
status post_id id
1 8420 1
0 8420 2
1 8420 3
اما این کد پایین id 2 رو به من میده، در حالی که باید 3 رو بده، همچنین وقتی که پستی دارم اما در این جدول رکوردی نداره رو نمایش نمیده
return $this->hasOne('App\Post')->latest()->where('status', '=' ,0);
دوست عزیز بعد از شرط where یک متد دیگر بنویسید به نام first() که اون کوئری ای که دریافت میکند را به راحتی نمایش بدهد.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟