У меня есть таблица HTML, в которой я хочу отображать данные, полученные из таблицы базы данных.
Я успешно делал это с php в прошлом, но с Laravel ничего не отображается в таблице: Ниже приведен код для отображения данных в таблице.
<tbody>
@php
$total_sales = 0;
$comm_total = 0;
@endphp
@foreach ($comm as $data){
$comm_total += $data->sales_comm;
$total_sales += $data->sales_total;
<tr>
<td>{{$data->sales_date}}</td>
<td>{{$data->sales_total}}</td>
<td>{{$data->sales_comm}}</td>
</tr>
@endforeach
Я хочу, чтобы каждая строка в таблице базы данных с идентификатором вошедшего в систему пользователя и выбранным месяцем и годом извлекалась и отображалась в таблице блейдов.
А вот код контроллера
$comm = \DB::table('bakerysales')->where('customer_id', Auth()->id()
->whereMonth('sales_date', $request->input('mn'))
->whereYear('sales_date', $request->input('yr'))
->get();
return view('showCommission', compact('comm'));
Ты почти там. 2 вещи:
Во-первых: @foreach ($comm as $data){
не нужен {
Во-вторых, при использовании тега @php вам необходимо заключать все в скобки. Так:
@php
$total_sales = 0;
$comm_total = 0;
@endphp
Становится:
@php( $total_sales = 0 )
@php( $comm_total = 0 )
Все вместе это выглядит следующим образом:
@php( $total_sales = 0 )
@php( $comm_total = 0 ) // Note the omission of the ;
@foreach( $comm as $data )
<tr>
<td>{{$data->sales_date}}</td>
<td>{{$data->sales_total}}</td>
<td>{{$data->sales_comm}}</td>
</tr>
@endforeach
Что касается кода вашего контроллера:
// Make sure you call these at the top of your controller
use Auth;
use App\User;
public function show( Request $request )
{
$comm = DB::table('bakerysales')
->where('customer_id', Auth::id() ) // Getting the Authenticated user id
->whereMonth('sales_date', $request->input('mn') )
->whereYear('sales_date', $request->input('yr') )
->get();
return view('showCommission', compact('comm') );
}
Используйте
dd()
, чтобы вывести значение$comm
в качестве отправной точки.