Привет, я смог получить значения из двух таблиц, теперь я хочу, чтобы эти два значения были вычтены. Как я могу сделать это здесь, в 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));
}
Попробуйте это так:
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.
Также я использовал "compact", чтобы присвоить значения, которые вы только что вернули в представление. Это не обязательно, но сохраняет некоторый код и его легче читать.
$results - $subjects
?