提问者:小点点

如何将变量数据从Controller传递到Laravel中的app.blade.php?


我想把查询的结果传递给模板(我在模板中有一个部分显示每个表的行数(count)),所以在我的控制器中我有这个函数:

public function dashboardInfos()
{
    $infos = DB::select("SELECT ( SELECT COUNT(*) from patients ) AS P, (SELECT COUNT(*) FROM rendez_vouses) AS R, (SELECT COUNT(*) FROM ordonnances) AS O, (SELECT COUNT(*) FROM consultations) AS C");   

    foreach($infos as $i)
    {
        View::share([
        'P' => $i->P, 
        'R' => $i->R, 
        'O' => $i->O, 
        'C' => $i->C]);
    }

}

在app.blade.php中,我放置了:{{$i->p}}

我得到的错误是“undefined variable:i”

我该如何解决这个问题?? 提前感谢:)


共2个答案

匿名用户

我通过删除控制器内部的函数dashboardInfos()来实现这一点,然后转到引导函数内部的AppServiceProvider,并编写了以下代码:

public function boot()
{
    View::share('infos', DB::select("SELECT ( SELECT COUNT(*) from patients ) AS P, (SELECT COUNT(*) FROM rendez_vouses) AS R, (SELECT COUNT(*) FROM ordonnances) AS O, (SELECT COUNT(*) FROM consultations) AS C"));
}

在app.blade.php中,我写了以下内容:

@foreach ($infos as $i)
   <h2 class="text-dark mb-1 font-weight-medium">{{ $i->P }}</h2>
@endforeach

匿名用户

使用返回视图('name-blade-template',compact('varname')); 压缩('varname')与'varname'=>$varname相同