Стремительная загрузка с 3 столбцами сводной таблицы получить дубликаты laravel 6 - PullRequest
0 голосов
/ 08 января 2020

Я новичок в 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 ответьте на любую помощь, пожалуйста.

...