每月汇总子表值laravel
我在数据库上有两个标签 表Anggaran每月汇总子表值laravel,laravel,parent-child,Laravel,Parent Child,我在数据库上有两个标签 表Anggaran +----+-------------------+ | id | uraian | +----+-------------------+ | 1 | Pembangunan Jalan | | 2 | Material Bangunan | +----+-------------------+ +----+-------------+------------+---------+----------+ | id | ang
+----+-------------------+
| id | uraian |
+----+-------------------+
| 1 | Pembangunan Jalan |
| 2 | Material Bangunan |
+----+-------------------+
+----+-------------+------------+---------+----------+
| id | anggaran_id | waktu | jumlah | penerima |
+----+-------------+------------+---------+----------+
| 1 | 2 | 2019-10-12 | 1000000 | Dadang |
| 2 | 2 | 2019-10-28 | 1500000 | Bambang |
| 3 | 2 | 2019-11-12 | 3000000 | Tono |
| 4 | 2 | 2019-12-10 | 2500000 | Agus |
| 5 | 2 | 2019-12-20 | 1500000 | Bajo |
+----+-------------+------------+---------+----------+
表Pengeluaran
+----+-------------------+
| id | uraian |
+----+-------------------+
| 1 | Pembangunan Jalan |
| 2 | Material Bangunan |
+----+-------------------+
+----+-------------+------------+---------+----------+
| id | anggaran_id | waktu | jumlah | penerima |
+----+-------------+------------+---------+----------+
| 1 | 2 | 2019-10-12 | 1000000 | Dadang |
| 2 | 2 | 2019-10-28 | 1500000 | Bambang |
| 3 | 2 | 2019-11-12 | 3000000 | Tono |
| 4 | 2 | 2019-12-10 | 2500000 | Agus |
| 5 | 2 | 2019-12-20 | 1500000 | Bajo |
+----+-------------+------------+---------+----------+
我希望每月显示pengeluaran表中的所有anggaran数据和jumlah总和
这是我想要的结果
+--------------------+---------+----------+------+-------+-----+------+------+--------+-----------+---------+----------+----------+
| Uraian | January | February | March| April | May | June | July | August | September | October | November | December |
+--------------------+---------+----------+------+-------+-----+------+------+--------+-----------+---------+----------+----------+
| Pembangunan Jalan | | | | | | | | | | | | |
| Material Bangunan | | | | | | | | | | 2500000 | 3000000 | 4000000 |
+--------------------+---------+----------+------+-------+-----+------+------+--------+-----------+---------+----------+----------+
我的代码使用有很多关系,但总和没有显示
这是我的控制器
$anggaran = Anggaran::with(['pengeluaran' => function($query){
$query->select(
DB::raw('sum(jumlah) as sum'),
DB::raw("Monthname(waktu) as month"))
->groupBy('month');
}])
->get();
这是我的刀片
@foreach($anggaran as $angaran)
<tr>
<td>{{$angaran->uraian}}</td>
@foreach($angaran->pengeluaran as $p)
<td>{{$p->sum}}</td>
@endforeach
</tr>
@endforeach
@foreach($anggaran作为$angaran)
{{$angaran->Urian}
@foreach($angaran->pengeluaran作为$p)
{{$p->sum}
@endforeach
@endforeach
我成功展示了Urian,但sum没有出现。有人能帮我吗?在您的控制器中:
$anggaran = Anggaran::with(['pengeluaran'])->get();
在你的刀刃上,你可以直接求和
@foreach($anggaran as $angaran)
<tr>
<td>{{$angaran->uraian}}</td>
<td>{{$angaran->pengeluaran->sum('jumlah') }}</td>
</tr>
@endforeach
@foreach($anggaran作为$angaran)
{{$angaran->Urian}
{{$angaran->pengeluaran->sum('jumlah')}
@endforeach
在集合的帮助下,应该不会太难:
$anggaran=anggaran::with(['pengeluaran'=>函数($query){
$query->select('anggaran_id','jumlah')
->选择raw(“month(waktu)as month”);//获取月份号以便更容易排序
}])
->get();
@foreach($anggaran作为$angaran)
{{$angaran->Urian}
@foreach($angaran->pengeluaran->groupBy('month')作为$month=>$pengeluaran)
{{$pengeluaran->sum('jumlah')}
@endforeach
@endforeach
在没有pengeluaran的行中显示0
@foreach($anggaran作为$angaran)
{{$angaran->Urian}
@foreach(范围(1,12)为$month)
{{$angaran->pengeluaran->groupBy('month')->get($month,collect())->sum('jumlah')}
@endforeach
@endforeach
为了避免在没有
$month
索引时在null
上调用sum()
,我在get()
的第二个参数中传递了一个空集合作为默认值,如何在没有任何pengeluaran的月份显示sum值0?