Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel通过名称创建ID数组';s_Php_Laravel_Eloquent - Fatal编程技术网

Php Laravel通过名称创建ID数组';s

Php Laravel通过名称创建ID数组';s,php,laravel,eloquent,Php,Laravel,Eloquent,我想查询我的Laravel应用程序中的一个表 id | company_name | contact | ----------------------------- 1 | Tesco | Name 1 | 2 | Tesco | Name 2 | 3 | Asda | Name 3 | 4 | Tesco | Name 4 | 5 | Asda | Name 5 | 我正在尝试获取一个包含所有唯一公

我想查询我的Laravel应用程序中的一个表

id | company_name | contact |
-----------------------------
1  | Tesco        | Name 1  |
2  | Tesco        | Name 2  |
3  | Asda         | Name 3  |
4  | Tesco        | Name 4  |
5  | Asda         | Name 5  |
我正在尝试获取一个包含所有唯一公司名称和所有ID号的数组

'Tesco' => [1,2,4]
'Asda' => [3,5]
我试过了

$companies = Contact::select('company_name','id')->groupBy('company_name')->get();
然而,这要求将“id”包括在违背目的的组中。我理解它要求这个,因为它不是一个总数或计数等


上表可能看起来不寻常,我知道我应该与公司表有关联,但这在现阶段是必要的。

您可以使用
GROUP\u CONCAT()

这将返回如下结果:

company_name | ids
Tesco        | 1,2
编辑:如果希望ID以数组的形式出现,只需映射集合即可将其转换为:

$companies->map(function($column) {
    $column->ids = explode(',', $column->ids);
});

这应该能奏效

您可以使用
GROUP\u CONCAT()

这将返回如下结果:

company_name | ids
Tesco        | 1,2
编辑:如果希望ID以数组的形式出现,只需映射集合即可将其转换为:

$companies->map(function($column) {
    $column->ids = explode(',', $column->ids);
});

这应该能奏效

加1表示集合上方的
映射
提示!加1表示集合上方的
映射
提示!