Я извлекаю данные из двух таблиц, используя соединение, однако я хочу, чтобы мой результат возвращал многомерный массив, т.е.
ФРУКТЫ
Животное
Страна
Итак, это то, что я хочу, чтобы он возвращал, см. Мой код ниже
Route::get('all-category', function(){
$category = DB::table('directory_companies')
->join('categories','directory_companies.categories_id', '=', 'categories.id')
->select('categories.name', 'directory_companies.*')
->get();
return response()->json($category);
Как мне вернуть его для отображения, как в списке выше, в многомерном массиве, я использую Laravel для создания API
Вы можете использовать красноречивый ресурс для отображения любой структуры, которую вы хотите для API.
Создать ресурс и коллекцию ресурсов
php artisan make:resource directory_companies
php artisan make:resource directory_companies_collection --collection
$category = DB::table('directory_companies')
->join('categories','directory_companies.categories_id', '=', 'categories.id')
->select('categories.name', 'directory_companies.*')
->get();
return response()
->json(new directory_companies_collection(new directory_companies($category)));
И в вашем ресурсе directory_companies:
public function toArray($request)
{
return [
// Any structure of data you want to present
];
}
Вы должны использовать отношения laravel, это будет намного проще laravel.com/docs/8.x/eloquent-relationships#querying-relations