webazin webazin
6 سال پیش توسط webazin webazin مطرح شد
0 پاسخ

مشکل در رابطه hasManyThrough

سلام دوستان؛خسته نباشید،من میخواستم از این رابطه واسه پرداختی های سفارشات فروشگاه استفاده کنم،به این شکل که رابطه فروشگاه با سفارشات

public function orders() {
        return $this->belongsToMany( Order::class , 'order_shop' );
    }

و رابطه رابطه سفارشات با پرداختی ها به این شکل

public function pay() {
        return $this->hasOne( Pay::class , 'order_id' , 'id' );
    }

حالا من اومدم توی مدل shop این رابطه رو تعریف کردم

public function payOrders() {
        return $this->hasManyThrough( Pay::class , Order::class , 'shop_id' , 'order_id' );
    }

واسه تست اومدم از دو راه استفاده کردم یکی اینکه

$orderIds = $shop->orders->pluck('id');
        $orderPays = Pay::whereIn( 'order_id' , $orderIds )->get();
        $orderPays1 = $shop->payOrders()->get();

که اولی 85 نتیجه رو برمیکردونه و دومی 45 نتیجه رو،ینی مشکل از inner join هست؟ممنون میشم کمک کنید