功能显示结果是控制器内部的视图刀片(LARAVEL,PHP)

我想在主页视图边栏选项卡中显示总金额(表 = 付款,冒号 = 金额)


我通过路由测试了另一种方法,这工作正常,但结果显示在/test中:


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,但功能索引是aleardy使用的,所以我在这个控制器中创建新函数,我试试这个


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>


拉风的咖菲猫
浏览 118回答 3
3回答

莫回无

您可以使用紧凑的函数发送总变量结果,如下所示。return&nbsp; view('home' , compact('total'));// You can call it in home.blade like this&nbsp;//for example@if(isset($total ))&nbsp; &nbsp; <li>{{ $total }}</li>@endif

烙印99

您可以使用with()public function show(){&nbsp; &nbsp; $total = DB::table('payments')->where('status', '=', 'success')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ->sum('payments.amount');&nbsp;&nbsp; &nbsp; return&nbsp; view('home')->with('total', $total);&nbsp;}

森林海

根据文档:第二个参数是应提供给视图的数据的“数组”。尝试:return&nbsp;&nbsp;view('home'&nbsp;,&nbsp;['total'&nbsp;=>&nbsp;$total]);或使用 :->with('key',$value)return&nbsp;view('home')->with('total',&nbsp;$total);你也可以使用compact()函数,它是PHP中的内置函数,用于使用变量创建数组:return&nbsp;&nbsp;view('home'&nbsp;,&nbsp;compact("total"));
打开App,查看更多内容
随时随地看视频慕课网APP