Есть ли способ, которым я могу присоединиться к другому столу в красноречивом - PullRequest
0 голосов
/ 07 июня 2019

Есть ли способ, которым я могу присоединиться к другому столу в eloquent?

вот мой код

   /**
     * 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,
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...