在laravel中减去两个表

时间:2014-12-09 06:09:46

标签: php database laravel-4 eloquent

您好我能够从两个表中获取值,现在我希望减去这两个值。我怎么能在laravel这里做到这一点?

public function displayBalance()
    {
        $results= DB::table('accountspayable')
            ->selectRaw('sum(accountspayable.amount) as sum')
            ->where('accountspayable.regnum','=','15459')
            ->get();

        $subjects= DB::table('pay')
            ->selectRaw('sum(pay.amount) as sum')
            ->join('accountspayable','pay.accountno','=','accountspayable.accountno')
            ->where('accountspayable.regnum','=','15459')
            ->get();

    return View::make('users.Balance')->with(array('results'=>$results,'subjects'=>$subjects));
}   

1 个答案:

答案 0 :(得分:0)

以这种方式尝试:

public function displayBalance()
{
    $results = DB::table('accountspayable')->
        where('regnum'. '='. '15459')->
        sum('amount');

    $subjects = DB::table('pay')->
        join('accountspayable','pay.accountno','=','accountspayable.accountno')->
        where('accountspayable.regnum','=','15459')->
        sum('pay.amount');

    return View::make('users.Balance', compact('results', 'subjects'));
}

您可能正在收集1条记录,其中包含1个属性(总和)。这是你基本上唯一需要的东西。因此,您可以直接在查询构建器中使用聚合函数来获取SUM值。

我也用过#34; compact"将刚刚检索到的值分配给视图。这不是必需的,但可以保存一些代码并且更易于阅读。