我试图获得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
我的表结构是:
从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
你不需要那里的get()方法。
public function countDue()
{
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price');
return response()->json($getTotalDue);
return compact('getTotalDue');
}
此外,您有两个返回语句一个接一个,使第二个返回语句无法访问。
view()方法的第二个参数需要是一个数组,或者您可以使用with()语法。您应该尝试以下代码,并将$ getTotalDue传递给视图。
public function create()
{
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price');
return view('pages.booksin')->with(['getTotalDue' => $getTotalDue]);
}
无需使用get()
$getTotalDue = DB::table('ordered_books')
->where('BillPaid', 0)
->sum('Price');
将返回带有和值的浮点数