Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 14.01.2017 15:21:39

Нетерпеливая загрузка и отношения других моделей

Имеется таблица basket_items, которая имеет полиморфную связь с другими моделями. Как мне сделать так, что если в Модели есть другая связь, то что бы она тоже вывелась при запросе.
10020fff2014511d226566cdba0f935c.png
Вот тут второй items имеет event_id и city_id, как мне получить их модели? В модели Related_event все отношения созданы

    public function event()
    {
        return $this->belongsTo(Event::class);
    }

    public function city()
    {
        return $this->belongsTo(City::class);
    }

Не в сети

#2 14.01.2017 16:16:35

Re: Нетерпеливая загрузка и отношения других моделей

 public function show($id)
    {
        $basket = Basket::with('items.entity')->findOrFail($id);


        return response()
            ->json([
                'model' => $basket,
                'option' => ''
            ]);
    }

Не в сети

#3 17.01.2017 05:44:30

Re: Нетерпеливая загрузка и отношения других моделей

Я смог получить отношение для этого элемента, но теперь у меня пропали другие данные.

       

 $basket = Basket::with('items.entity')->with(['items' => function ($query) {
            $query->where('entity_type', '=', 'related_event')->with('entity.event');
        }])->findOrFail($id);

Пытался так сделать

        $basket = Basket::with('items.entity')->with(['items' => function ($query) {
            $query->where('entity_type', '=', 'related_event')->with('entity.event');
        }])->with(['items' => function ($query) {
            $query->where('entity_type','<>', 'related_event')->with('entity');
        }])->findOrFail($id);

Но тут переназначается полностью items, то есть уже нет того items, для которого я определил дополнительные отношения.

Если я напишу

$basket = Basket::with('items.entity')->with('entity.event')->findOrFail($id)

То для других отношений, вылазит Exception, типо нет такого отношения для данной модели

Не в сети

Подвал раздела