передать дополнительные данные ресурсу laravel - PullRequest
1 голос
/ 11 февраля 2020

Мне нужно передать мои пользовательские данные на тот же уровень массива ресурсов, но он выходит за пределы массива

return CategoryProductsResource::collection(Category::whereNull('parent_id')->get())
  ->additional([
                'data' => [
                    'id' => 9999,
                    'name' => 'How Offers',
                    'image' => 'http://businessdotkom.com/storage/categories/January2020/1o6nDi1kjVuwje5FiFXv.png',
                    'products' => ProductIndexResource::collection(Product::whereNotNull('sale_price')->get()),
                ]
            ]);

json вывод

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Поскольку дополнительные данные для данных верхнего уровня, используйте concat instaed.

return CategoryProductsResource::collection(Category::whereNull('parent_id')->get())
  ->concat([
                'data' => [
                    'id' => 9999,
                    'name' => 'How Offers',
                    'image' => 'http://businessdotkom.com/storage/categories/January2020/1o6nDi1kjVuwje5FiFXv.png',
                    'products' => ProductIndexResource::collection(Product::whereNotNull('sale_price')->get()),
                ]
            ]);
0 голосов
/ 11 февраля 2020

Вы можете использовать PHP array_merge() функцию

$categories = Category::whereNull('parent_id')->get()->toArray();

$merged = array_merge($categories, [
           [
             'id' => 9999,
             'name' => 'How Offers',
             'image' => 'http://businessdotkom.com/storage/categories/January2020/1o6nDi1kjVuwje5FiFXv.png',
             'products' => ProductIndexResource::collection(Product::whereNotNull('sale_price')->get()),
           ]
]);

return CategoryProductsResource::collection(collect($merged));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...