在一个查询中使用具有多个关联数组的 laravel eloquent 获取数据

Posted

技术标签:

【中文标题】在一个查询中使用具有多个关联数组的 laravel eloquent 获取数据【英文标题】:fetching data using laravel elquent with multiple associated array in one query 【发布时间】:2018-09-24 04:45:09 【问题描述】:

我想知道是否有一个查询可以像关联数组形式 DB 那样获取,键是表中的一列,值所有具有相同键的记录,例如使用 Laravel 与数据分组

table city ['name','country','barcode']

例子:

'egypt'=>[['cairo','egypt','02'],['alex','egypt','02']],
'usa'=>[['washington','usa','56'],['california','usa','56']],

-- 我试试

$data=City::groupBy('country')->get();

但它只从每个国家/地区获取第一条记录

【问题讨论】:

你不是已经问过这个了吗? ***.com/q/49799753/754119 请提供一些您想要的代码或示例..如果您只提供这样的信息..其他人无法帮助您解决您的问题,因为我们不知道您的问题是什么 @Adam 该标志可能会被拒绝,因为您可以将此帖子标记为重复,并且社区将处理此问题(通过投票关闭帖子作为重复)。如果你愿意,你可以收回你的旗帜 @Adam 虽然帮助文本说可以例外,尤其是在问题本质上完全相同的情况下 刚刚修复了flag,感谢指点! 【参考方案1】:

你需要一个控制器,然后把它放在你的控制器上

$cities = City::all();
foreach($cities as $city)
 
    $data[$city->country][] = $city;

return response()->json($data);

变量国家只会得到每个国家的第一行数据,因为点是按国家分组,你只需要得到唯一的国家。 之后,我会循环尽可能多的国家/地区长度并显示每个国家/地区的数据

【讨论】:

这很好,但我想制作 nasted for 循环,有了这个我可以做到——我将显示国家,每个国家都显示其中的每个城市——就像 egar 加载关系 再看看我的答案 我通过使国家表(新的)和城市表之间存在关系来解决,我用它加载国家和egar加载城市,所以我可以为国家和每个国家内部制作一个循环他们的城市 没关系.. 但是如果您已经解决了您的问题,请分享您的答案。所以如果他们和你有同样的问题,其他人可以解决他们的问题。但是,如果您尝试我的代码并且它可以按您的意愿工作,请在我的回答中打勾。因为我认为您可以在不制作任何表格的情况下解决它.. ^^

以上是关于在一个查询中使用具有多个关联数组的 laravel eloquent 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:通过另一个表从具有关联表的表中检索记录

来自给定数组的查询中的 Laravel 多个 where 子句

laravel怎么取出多对多关联表的一个字段,组成一个数组

具有多个模型的 Laravel ajax 实时搜索查询

laravel的多态关联--morphTo和morphMany

Rails 查询具有关联条件的多个主键