راکت

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

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

ممنون میشوم اگر کمک کنید
ثبت پرسش جدید

پاسخ‌ها

5
Masoomeh
Masoomeh
@zafari.ma.8

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

پوریا
پوریا
@contact.poria

تخصص: برنامه نویس تحت وب

@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
Masoomeh
@zafari.ma.8

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

پوریا
پوریا
@contact.poria

تخصص: برنامه نویس تحت وب

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

یونس عبداحد
یونس عبداحد
@YounesAbdeahad

تخصص: طراح سایت

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

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

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