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

如何将变量数据从Controller传递到Laravel中的app.blade.php?,php,laravel,view,laravel-7,Php,Laravel,View,Laravel 7,我想将查询结果传递给模板(我的模板中有一个部分,其中显示了每个表的行数(计数)),因此在我的控制器中有以下功能: 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

我想将查询结果传递给模板(我的模板中有一个部分,其中显示了每个表的行数(计数)),因此在我的控制器中有以下功能:

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}

我得到的错误是“未定义变量:I”

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

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

相同,我通过删除控制器中的函数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
@foreach($infos作为$i)
{{$i->P}
@endforeach

没有名为
i
的变量。。。您将它们命名为
P,R,O,C
是否调用了
dashboardInfos()
及其控制器?如果您希望在每次使用
app.blade.php
布局时都能获得这些信息,我会使用Composer视图,但使用它时,会在vscode 2019中为我提供未定义的变量下划线!然后你可以把刀片模板{{$varname}放在页面上,我想让它显示在所有页面上,我怎么能做到呢?在这种情况下,请检查使用视图生成器。。。当您要部署它时,您将遇到问题,除非整个数据库已经为您在部署它的位置进行了设置,因为您要求框架在每次启动时进行数据库查询,包括在运行命令时进行查询。。。如果您想运行迁移来创建这些表,由于数据库异常,您将无法创建这些表