如何使用 laravel 将多维数组传递给 API

Posted

技术标签:

【中文标题】如何使用 laravel 将多维数组传递给 API【英文标题】:How to Pass multidimensional array to API using laravel 【发布时间】:2021-03-25 04:32:13 【问题描述】:

我正在使用连接从两个表中获取数据,但是,我希望我的结果返回一个多维数组,即

水果

苹果 芒果 橙色

动物

狗 猫 牛

国家

德国 英国 美国

所以,这就是我希望它返回的内容,请参阅下面的代码

 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

【问题讨论】:

你应该使用laravel关系会容易很多laravel.com/docs/8.x/eloquent-relationships#querying-relations 【参考方案1】:

您可以使用eloquent resource 显示任何您想要的 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 将多维数组传递给 API的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中,如何将多维数组作为 artisan 命令的选项传递?

如何将多维数组转换为Laravel中的集合

如何将多维动态数组传递给C++中的函数

c++ - 如何将多维数组传递给没有内部维度的函数? [复制]

如何将零填充的多维数组传递给 C++ 中的函数?

C,如何将多维数组传递给 CLR/类库项目中的函数