>

Laravel 5.4에는 거의 완벽한 시스템이 있지만 컬렉션의 키에서 합계를 사용하는 데 어려움이 있습니다.

내 자신의 일련의 코드 스 니펫과 포럼에서 다양한 오도 코드를 시도했습니다 (내 경험에 따라).

컬렉션은 다음과 같습니다 :

Collection {#263 ▼
  #items: array:3 [▼
    5 => Collection {#224 ▼
      #items: array:10 [▼
        0 => {#213 ▼
          +"id": 1
          +"portfolio_id": 5
          +"type": "Secured Note"
          +"date": "2018-11-18"
          +"inv_amount": "300000"
          +"return_rate": "10%"
          +"payment_amount": "7500"
          +"inv_term": "18 Months"
          +"payment_schedule": "Monthly"
          +"account_info": "US BANK 4532"
          +"pdffiles": null
          +"created_at": "2019-04-19 01:51:53"
          +"updated_at": "2019-04-19 11:53:03"
          +"user_id": 1
          +"hide": null
          +"contract": null
          +"reports": null
          +"taxdocs": null
        }
        1 => {#252 ▶}
        2 => {#253 ▶}
        3 => {#254 ▶}
        4 => {#255 ▶}
        5 => {#256 ▶}
        6 => {#257 ▶}
        7 => {#258 ▶}
        8 => {#259 ▶}
        9 => {#260 ▶}
      ]
    }
    6 => Collection {#261 ▼
      #items: array:1 [▼
        0 => {#218 ▼
          +"id": 2
          +"portfolio_id": 6
          +"type": "Secured Note"
          +"date": "2018-09-15"
          +"inv_amount": "350000"
          +"return_rate": "12%"
          +"payment_amount": "7500"
          +"inv_term": "24 Months"
          +"payment_schedule": "Monthly"
          +"account_info": "US BANK 4532"
          +"pdffiles": null
          +"created_at": "2019-04-19 01:53:46"
          +"updated_at": "2019-04-19 03:14:03"
          +"user_id": 1
          +"hide": null
          +"contract": null
          +"reports": null
          +"taxdocs": null
        }
      ]
    }
    7 => Collection {#262 ▼
      #items: array:1 [▼
        0 => {#238 ▼
          +"id": 3
          +"portfolio_id": 7
          +"type": "Secured Note"
          +"date": "2018-06-11"
          +"inv_amount": "380000"
          +"return_rate": "15%"
          +"payment_amount": "8900"
          +"inv_term": "36 Months"
          +"payment_schedule": "Monthly"
          +"account_info": "US BANK 4532"
          +"pdffiles": null
          +"created_at": "2019-04-19 01:54:45"
          +"updated_at": "2019-04-24 00:38:21"
          +"user_id": 1
          +"hide": null
          +"contract": null
          +"reports": null
          +"taxdocs": null
        }
      ]
    }
  ]

컨트롤러에서 생성하는 내용은 다음과 같습니다.

$grouped = DB::table('funds')
    ->get()
    ->groupBy('portfolio_id');
dd($grouped);

펀드 모델은 포트폴리오에 속하며 포트폴리오 모델에는 많은 자금이 있습니다.

컬렉션에는 3 가지 포트폴리오가 있습니다. groupBy에서 생성 된 3 가지에 대한 payment_amount 지불 합계를 시도하고 있습니다.

도움말!

  • 답변 # 1

    groupBy() 를 사용해야합니다   get() 전에 . 또한 선택에 SUM을 사용해야합니다.

    $grouped = DB::table('funds')
        ->select(DB::raw("portfolio_id, SUM(payment_amount)"))
        ->groupBy('portfolio_id')
        ->get();
    dd($grouped);
    
    

    https://laravel.com/docs/5.8/queries#aggregates

    도 참조하십시오.

  • 이전 javascript - 배열 내에서 수정 된 객체 또는 집계를 구별
  • 다음 redis - SQS에서 자동 할당 컨텐츠를 디자인하는 방법은 무엇입니까?