результат отображения функции - контроллер внутри лезвия домашнего просмотра (LARAVEL, PHP) - PullRequest
0 голосов
/ 25 января 2020

я хочу показать общую сумму в блэйде домашнего просмотра (таблица = платежи, двоеточие = сумма)

я проверил другой метод по маршруту, это работает нормально, но результат отображается в / test of курс:

Route::get('/test', function(){
 $total = DB::table('payments') 
->where('status', '=', 'success')   //this for collect only the success payments
->sum('payments.amount'); 
return   $total;   //  work fine the result is correct
});

, но моя цель - отобразить этот результат в домашнем представлении, переместив функцию из предыдущего кода с маршрута на контроллер и вызвав ее в представлении

для контроллера У меня есть Homecontroller, но индекс функции используется довольно часто, поэтому я создаю новую функцию в этом контроллере, я пробую это

public function show(){
 $total = DB::table('payments') 
->where('status', '=', 'success') 
->sum('payments.amount'); 
return  view('home' , $total); 
}

для маршрутизации, я помещаю это

Route::get('/home', 'HomeController@show');

я пробую это внутри просмотр, но не работает:

<h1>{{$total}}</h1>

Ответы [ 3 ]

0 голосов
/ 25 января 2020

Вы можете использовать with()

public function show(){
    $total = DB::table('payments')->where('status', '=', 'success')
                                  ->sum('payments.amount'); 
    return  view('home')->with('total', $total); 
}
0 голосов
/ 25 января 2020

в соответствии с документацией:

Второй аргумент - это «массив» данных, которые должны быть доступны для представления.

try:

return  view('home' , ['total' => $total]); 

или используйте ->with('key',$value):

return view('home')->with('total', $total);

Вы также можете использовать функцию compact(), это встроенная функция в PHP и используемая для создания массива используя переменные:

return  view('home' , compact("total")); 
0 голосов
/ 25 января 2020

Вы можете отправить итоговый результат переменной с компактной функцией для просмотра, как показано ниже.

return  view('home' , compact('total'));

// You can call it in home.blade like this 

//for example

@if(isset($total ))
    <li>{{ $total }}</li>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...