联接以在查询生成器laravel中显示特殊数据 [英] Join to display spesific data in query builder laravel

查看:60
本文介绍了联接以在查询生成器laravel中显示特殊数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我的数据库中有2个表

Let's say I have 2 table in database

在laravel中,我使用了这样的查询生成器

In laravel I used query builder like this

DB::table('chart')->join('chart_detail', 'chart.id', '=', 'chart_detail.id_cart')->get();

结果是这样的:

这不是我想要显示的数据,因为冗余过多
我想显示这样的数据:

It's not what I want to display data, because too much redundancy
I want to display data like this:

我在加入sql命令时哪里错了?

Where I'm wrong in join sql command?

推荐答案

这不是您可以完全对查询执行的操作...在前端,可以通过执行以下操作将其分组在一起(更好地使用一个客户ID(如果有的话):

This is not something you can do with your query exactly... on your front-end you can group it together by doing something like this (better to use a customer id if you have one):

$data = [];
foreach ($result as $row) {
    if (!isset($data[ $row['nama_customer'] ])) {
        $data[ $row['nama_customer'] ] = [];
    }
    $data[ $row['nama_customer'] ][] = $row;
}
var_dump($data);

然后,当呈现HTML时,您可以通过在<tr>标记上设置行跨度来将其分组在一起.

Then when you render your HTML you have enough information to group it together by setting rowspan on your <tr> tag.

这篇关于联接以在查询生成器laravel中显示特殊数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆