有没有办法我可以雄辩地加入另一个表

时间:2019-06-07 17:12:32

标签: laravel-5.5

有没有办法让我雄辩地联接另一个表?

这里是我的代码

   /**
     * Return users subscriptions
     *
     * @param  int $id User ID
     * @return Illuminate\Response
     */
    public function show($id)
    {
        $subscriptions = Subscription::with([
                'plan',
                'user',
                'ccpayment',
                'fulfillment',
                'shippingAddress',
                'fulfillment.shipments',
                'fulfillment.shipments.courrier',
                'fulfillment.shipments.shipment_batch'
            ])
            ->whereHas('user', function($query) use ($id) {
                return $query->where('id', $id);
            })
            ->get();

        $this->subscriptions = &$subscriptions;

        self::includeCoupon();

        return SubscriptionsResource::collection($this->subscriptions);
    }

    private function includeCoupon()
    {
        foreach ($this->subscriptions as $key => $sub) {
            $coupon = CouponSubscription::where('subscription_id', $sub->id)
                ->first();

            $this->subscriptions[$key]->coupon = $coupon;
        }
    }

在上面的代码中,您可以在这里看到我使用循环,只是为了获得包含的优惠券。

当我尝试使用resources之类的东西时出现问题

return [
    'id'     => $this->hashed_id,
    'coupon' => is_object($this->coupon) ? new CouponResource($this->coupon) : [],
];

在这一行'coupon' => is_object($this->coupon) ? new CouponResource($this->coupon) : [],虽然我有优惠券,但在API上却有[]

这是优惠券资源的代码

public function toArray($request)
{
    return [
        'name'        => $this->name,
        'code'        => $this->code,
        'description' => $this->description,
    ];
}

0 个答案:

没有答案
相关问题