Я новичок в laravel. Я пытаюсь получить данные с активной загрузкой, но в ответ получаю дубликаты данных.
Таблицы
заказы (первая таблица) веб-сайты (вторая таблица) статьи ( третья таблица) order_website_article (сводная таблица)
Заказы Модельные отношения
public function websites()
{
return $this->belongsToMany(Website::class, 'order_website_article', 'OrderNumber', 'WebsiteURL');
}
public function articles()
{
return $this->belongsToMany(Article::class, 'order_website_article', 'ArticleCode', 'WebsiteURL');
}
Статьи Модельные отношения
public function websites()
{
return $this->belongsToMany(Website::class, 'order_website_article', 'ArticleCode', 'WebsiteURL');
}
public function orders()
{
return $this->belongsToMany(Order::class, 'order_website_article', 'ArticleCode', 'OrderNumber');
}
Отношения с моделями сайтов
public function orders()
{
return $this->belongsToMany(Order::class, 'order_website_article', 'WebsiteURL', 'OrderNumber')
->withPivot('OrderNumber', 'WebsiteURL');
}
public function articles()
{
return $this->belongsToMany(Article::class, 'order_website_article', 'WebsiteURL', 'ArticleCode');
}
OrderController
public function show($OrderNumber)
{
$OrderData = Order::with(['user', 'websites.articles'])->findOrFail($OrderNumber);
return response()->json($OrderData, 200);
}
Запись сводной таблицы
OrderNumber | WebsiteURL | ArticleCode |
94A70BC52 | www.talesofarantingginger.com | 9295766F-5
94A70BC52 | www.talesofarantingginger.com | BB8B5D5A-7
94A70BC52 | www.talesofarantingginger.com | 4DA21752-E
94A70BC52 | www.nothingliketheholidays.com | E29CED68-E
94A70BC52 | www.nothingliketheholidays.com | B9E0C95C-7
94A70BC52 | www.destinationluxury.com | F2AFE0EB-B
Data OutPut
{
"ID": 1,
"OrderNumber": "#94A70BC52",
"ClientName": "admin",
"websites": [
{
"ID": 1,
"WebsiteURL": "www.talesofarantingginger.com",
"articles": [
{
"ID": 1,
"ArticleCode": "9295766F-5",
},
{
"ID": 2,
"ArticleCode": "BB8B5D5A-7",
},
{
"ID": 3,
"ArticleCode": "4DA21752-E",
}
]
},
{
"ID": 1,
"WebsiteURL": "www.talesofarantingginger.com",
"articles": [
{
"ID": 1,
"ArticleCode": "9295766F-5",
},
{
"ID": 2,
"ArticleCode": "BB8B5D5A-7",
},
{
"ID": 3,
"ArticleCode": "4DA21752-E",
}
]
},
{
"ID": 1,
"WebsiteURL": "www.talesofarantingginger.com",
"articles": [
{
"ID": 1,
"ArticleCode": "9295766F-5",
},
{
"ID": 2,
"ArticleCode": "BB8B5D5A-7",
},
{
"ID": 3,
"ArticleCode": "4DA21752-E",
}
]
},
{
"ID": 2,
"WebsiteURL": "www.nothingliketheholidays.com",
"articles": [
{
"ID": 4,
"ArticleCode": "E29CED68-E",
}
},
{
"ID": 5,
"ArticleCode": "B9E0C95C-7",
}
]
},
{
"ID": 2,
"WebsiteURL": "www.nothingliketheholidays.com",
"articles": [
{
"ID": 4,
"ArticleCode": "E29CED68-E",
}
},
{
"ID": 5,
"ArticleCode": "B9E0C95C-7",
}
]
},
]
}
]
}
Я получаю дубликаты записей в json ответьте на любую помощь, пожалуйста.