我正在尝试获取条件为Price
的列BillPaid
的总计,列值应为0
。
我的代码块是
public function countDue()
{
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price')
->get();
return response()->json($getTotalDue);
return compact('getTotalDue');
}
用于调用countDue
方法的控制器代码块。
public function create()
{
return view('pages.booksin', $this->countDue());
}
查看页面
<table id="showBooksIn" class="table table-bordered gridview">
<thead>
<tr><th>Total Due Amount</th></tr>
</thead>
<tbody>
@if(isset($getTotalDue))
@foreach($getTotalDue as $data)
<tr>
<td> {{$data}} </td>
</tr>
@endforeach
@endif
</tbody>
</table>
但是我收到错误消息:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Call to a member function get() on float
我的表结构是:
答案 0 :(得分:2)
在Laravel's documentation中,您不需要在那里链接get()
方法。
public function countDue(){
$getTotalDue = DB::table('ordered_books')->where('BillPaid', 0)->sum('Price'); //Get the sum using the Laravel's query builder aggregate sum method
return $getTotalDue;
}
public function create()
{
return view('pages.booksin', ['getTotalDue' => $this->countDue()]); //Pass the `countDue()` method output to the view
}
注意
这是一个值,您可能希望将其显示在标题或段落元素中,如下所示:
@if(isset($getTotalDue))
<h2>{{ $getTotalDue }}</h2>
@endif
答案 1 :(得分:0)
您不需要那里的get()方法。
public function countDue()
{
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price');
return response()->json($getTotalDue);
return compact('getTotalDue');
}
此外,您紧接有两个return语句,使第二个语句无法访问。
view()方法的第二个参数必须是一个数组,或者您可以使用with()语法。您应该尝试以下代码,并将$ getTotalDue传递到视图中。
public function create()
{
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price');
return view('pages.booksin')->with(['getTotalDue' => $getTotalDue]);
}
答案 2 :(得分:0)
无需使用get()
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price');
将返回具有您的总和值的浮点数