[英]How to Get sum of transactions in Recursive query
我有兩個表,第一個表與自身有父子關系,第二個表存儲第一個表的事務
第一桌
注:parent_id與Nominal有關系
第二張桌子
注意:first_level_id與第一個表的id有關
在 model 中,我創建了如下關系
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class first_level extends Model
{
use HasFactory;
use LogsActivity;
public function children()
{
return $this->hasMany(first_level::class, 'parent_id', 'Nominal')->with(['children']);
}
public function transactions()
{
return $this->hasMany(second_level::class, 'first_level_id', 'id');
}
}
現在在 controller 中,當我想要獲取所有子項及其交易時,我只能獲取沒有交易的子項。 那么如何讓所有孩子獲得他們的交易總和呢?
我的 controller:
public function getGeneralLedger(Request $request)
{
$items = first_level::with('children')->with('transactions')->where('parent_id', 0)->get();
return response()->json(['data' => $items]);
}
我通過修改我的 model 解決了我的問題
我的 model
public function children()
{
return $this->hasMany(first_level::class, 'parent_id', 'Nominal')
->with('transactions')
->with('children')
->withsum('transactions', 'debit')
->withsum('transactions', 'credit');
}
public function transactions()
{
return $this->hasMany(second_level::class, 'first_level_id', 'id');
}
我的 Controller
$items = first_level::with('children')
->where('parent_id', 0)
->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.