2014-12-09 3 views
0

Привет, я смог получить значения из двух таблиц, теперь я хочу, чтобы эти два значения были вычтены. Как я могу сделать это здесь, в laravel?Вычитание двух таблиц в 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)); 
} 
+0

Не могли бы вы просто: '$ results - $ subject'? –

+0

@SpencerWieczorek Я сделал, но его не поддерживал операнд –

+0

Каков тип данных, который вы получаете для '$ results' и' $ subject'? –

ответ

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.

Также я использовал «compact», чтобы присвоить значения, которые вы только что вернули в представление. Это не обязательно, но сохраняет некоторый код и его легче читать.

Смежные вопросы