#html #laravel
#HTML #laravel
Вопрос:
У меня есть 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'));
Комментарии:
1. Используется для вывода значения в качестве отправной точки.
dd()
$comm
Ответ №1:
Вы почти на месте. 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 AppUser;
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') );
}