2017-01-02 2 views
3

Я использую конструктор запросов для запросов выполнения к БД вроде как:Как присоединиться к результатам поиска с помощью оператора в Laravel?

$result = Order::with("product", "images"); 

В результате я получаю ответ с двумя вложенными объектами внутри:

{["product" : [{}], "images" : [{}]]} 

Как я могу соединить эти два объекта к одному, что чтобы получить следующий ответ:

{"title" : "Product name", "price" : 3, "images" :{}, "order" : {} } 
+0

Какова связь между заказом и продуктом, изображениями? Кроме того, вы уверены, что существует связь между порядком и изображениями, а не продуктом и изображениями? –

+0

Отношения между 'Order' и' Product' являются: 'Order.product_id = Product.id' и' Product.image = images.id' – Hamama

ответ

2

Вы должны использовать nested eager loading здесь:

Order::with('products.images')->first(); 

Если вы хотите получить массив или JSON вместо коллекции, используйте методы toArray() или toJson() при сборе.

+1

Вам нужно удалить первые 'продукты', потому что' products.images' загрузится '' продукты. – AntoineB

+0

@AntoineB да, вы правы, отредактированы. Благодарю. –

+0

В этом случае вы получите объекты и изображения объектов. Но мне нужно присоединиться к этому в одном объектном продукте – Hamama

Смежные вопросы