یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
پوریا
3 سال پیش توسط پوریا مطرح شد
5 پاسخ

مشکل در نمایش درست رکورد با کوئری

سلام وقت همگی بخیر
من دو تا جدول دارم :

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 نداشته باشه، چون ممکنه فعال یا غیرفعال نشده باشه، به همین دلیل مشکلی در نمایشش دارم .

ممنون میشوم اگر کمک کنید

ثبت پرسش جدید
Masoomeh
@zafari.ma.8 3 سال پیش مطرح شد
0

فکر کنم باید توی شرط where برابر یک بزارید شما برابر صفر گذاشتید


پوریا
تخصص : برنامه نویس تحت وب
@contact.poria 3 سال پیش مطرح شد
0

@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);

Masoomeh
@zafari.ma.8 3 سال پیش مطرح شد
0

جای شرط where و latest رو عوض کنید یعنی اول where رو اجرا بشه بعد latest
@contact.poria


پوریا
تخصص : برنامه نویس تحت وب
@contact.poria 3 سال پیش مطرح شد
0

@zafari.ma.8
تفاوتی نکرد


یونس عبداحد
تخصص : طراح سایت
@YounesAbdeahad 3 سال پیش مطرح شد
0

دوست عزیز بعد از شرط where یک متد دیگر بنویسید به نام first() که اون کوئری ای که دریافت میکند را به راحتی نمایش بدهد.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام