3

カテゴリと経費という 2 つの関連エンティティがあります。費用には、費用が発生した日付があります。

カテゴリ エンティティには、名前 (製品) と価格プロパティを持つ複数の経費エンティティとの 1 対多の関係があります。

今月の 1 つのカテゴリのすべての費用 -> 価格プロパティの合計を計算したいと考えています。(私はfindExpensesForMonthAndCategoryメソッドを使用しています)

助けてください。

カテゴリー

class Category
{
    protected $name;
    protected $expenses;

    public function __construct()
    {
        $this->expenses = new ArrayCollection();
    }
}

費用

class Expense
{
    protected $category;
    protected $product;
    protected $price;
    protected $date;
}
4

1 に答える 1

5

これを解決するには、実際には2つの方法があります。

解決策 1

getExpenseSum() メソッドを Category エンティティに追加します...

class Category 
{

// ...

    public function getExpenseSum() 
    {    
        $sum = 0;
        foreach ($this->expenses as $expense) {
            $sum += $expense->getPrice();
        }

        return $sum;
     }

これで、この方法で合計を twig に出力できます。

     {{ category.expenseSum }}

解決策 2

リポジトリにメソッドを作成します。

// src/Vendor/YourBundle/Entity/ExpenseRepository 

public function getSumByCategory($category)
{
    $q = $this->createQueryBuilder('e')
        ->sum('e.price')
        ->where('e.category = :category')
        ->setParameter('category', $category)
        ->getQuery();

    return $q->getResult();
}
于 2013-05-22T10:13:52.740 に答える