簡體   English   中英

如何在遞歸查詢中獲取交易總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM