راکت

استفاده از scope در join ها

بدون پاسخ

سلام یک سوال دارم ممنون می شم راهنمایی کنید.

من داخل مدل خودم یک Global Scopes ساختم ولی در استفاده از اون داخل join() به مشکل خوردم و شروطی که داخل scope گذاشتم اعمال نمی شن . ممنون می شم بفرمایید مشکلم کجاست

اسکوپ

    protected static function booted()
    {
        parent::booted();

        static::addGlobalScope('rate.index', function (Builder $builder) {
            $builder->where('rates.index', '=', 1);
        });
    }

    protected static function booted()
    {
        parent::booted();

        static::addGlobalScope('image.index', function (Builder $builder) {
            $builder->where('product_images.index', '=', 1);
        });
    }

query :

$products = Product::join('rates', 'products.id', '=', 'rates.product_id')
        ->join('product_images', 'products.id', '=', 'product_images.product_id')
        ->select([
            'products.id', 'products.name', 'products.slug',
            'product_images.url', 'product_images.alt',
            'rates.price', 'rates.discount', 'rates.discountExpirationDate'
        ])
        ->where([
            ['product_images.index', '=', 1],
            ['rates.index', '=', 1]
        ])
        ->whereIn('products.id', $extractSession['productIds'])
        ->get();

شروط where رو باید حتما بزارم وگرنه scope کار نمی کنه.

ثبت پرسش جدید

پاسخ‌ها

0

هنوز پاسخی ثبت نشده

اولین نفری باشید که به این پرسش کمک می‌کند و مسیر حل مشکل را باز می‌کند.

اولین پاسخ را بنویسید

شاید پاسخ شما همین‌جا باشد

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

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