php - Laravel 集合分组依据

标签 php laravel

我有一个搜索功能,可以按特定日期、月份、字符串等搜索费用。它返回一个集合:

enter image description here

到目前为止一切顺利。我可以显示所有返回的 Expenses。现在,我想要做的是,还显示按 description_id 分组的总费用计数和总金额。如果我简单地执行 $result->groupBy('description_id),我只得到一组集合,从中我可以显示总计数和总金额,但不能显示描述的名称。我想要的示例:

Grouped Results (By Expense):

Description Name: <-- Issue displaying this
Total Expenses: 3
Total Amount: 53444

描述名称只能通过ExpenseDescription之间的关系得到。费用属于描述。

在处理我的收藏时,是否完全有可能实现我想要的,或者我应该对这些结果执行单独的查询? (不受欢迎的)

最佳答案

如果您预先加载description,那么您可以根据集合的嵌套对象对结果集合进行分组。所以你可能有:

$expenses = Expenses::with('description')->get(); //collection

然后分组:

$grouped = $expenses->groupBy('description.name'); 
//or
$grouped = $expenses->groupBy('description_id'); 

然后你可以使用描述的名称,访问它,比如我们需要第一个组,以及组中的第一个费用,

$description_name = $grouped
                    ->first() //the first group
                    ->first() //the first expense in group
                    ->description //the description object
                    ->name //the name

这只是一点证明,你可以得到集合中相关模型的名称,并用它来解决你的问题。

关于php - Laravel 集合分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45359514/

相关文章:

php - 外部 css 文件未在 Codeigniter View 中加载

php - 如何找到/路径/到/artisan ?

javascript - 如何将变量和数据从 PHP 传递到 JavaScript?

php - 在 Codeigniter 中动态加载数据库连接数据

javascript - 如何使用 url 将 Base64 格式的 PDF 保存到数据库中?

php - Laravel:将查询生成器转换为 Eloquent:ORM

laravel - Laravel 中哪个文件处理重定向代码

php - 根据子类在父类中包含类

php artisan optimization仅在composer安装时超时

javascript,php 不将文本保存到文件