Php 从为每个页面加载的数据库中加载partial sidebar.blade模板的数据

Php 从为每个页面加载的数据库中加载partial sidebar.blade模板的数据,php,laravel,laravel-5,view,laravel-5.8,Php,Laravel,Laravel 5,View,Laravel 5.8,我是拉雷维尔的新手,需要帮助。登录用户后,在仪表板页面上,我有一个部分边栏刀片模板,显示从数据库加载的用户余额数据。这必须为每个仪表板页面加载 我无法想象如何为这个用户的平衡创建一个控制器,因为每个页面都有自己的路由和控制器 public function getBalance() { $userbalance = \App\UsersBalance::where('userid', '=', Auth::user()->id)->first(); $balan

我是拉雷维尔的新手,需要帮助。登录用户后,在仪表板页面上,我有一个部分边栏刀片模板,显示从数据库加载的用户余额数据。这必须为每个仪表板页面加载

我无法想象如何为这个用户的平衡创建一个控制器,因为每个页面都有自己的路由和控制器

public function getBalance()
{   
    $userbalance = \App\UsersBalance::where('userid', '=', Auth::user()->id)->first();
    $balance = $userbalance->balance;

    return view(......);
}
你可以。从文档中:

与所有视图共享数据 有时,您可能需要与所有视图共享一段数据 由应用程序呈现的。您可以使用视图来执行此操作 facade的共享方法。通常,您应该拨打电话进行共享 在服务提供商的引导方法中。您可以将它们添加到 AppServiceProvider或生成单独的服务提供程序 把他们关起来

因此,您可以在那里进行查询,然后将其传递给每个视图:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{

    // ...

    public function boot()
    {
        $loggedInUser = auth()->user();
        View::share('loggedInUser', $loggedInUser);
    }
}
您可以访问全局定义的属性:

# my_view.blade.php

<span>{{ $loggedInUser->name }}</span>
你可以。从文档中:

与所有视图共享数据 有时,您可能需要与所有视图共享一段数据 由应用程序呈现的。您可以使用视图来执行此操作 facade的共享方法。通常,您应该拨打电话进行共享 在服务提供商的引导方法中。您可以将它们添加到 AppServiceProvider或生成单独的服务提供程序 把他们关起来

因此,您可以在那里进行查询,然后将其传递给每个视图:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{

    // ...

    public function boot()
    {
        $loggedInUser = auth()->user();
        View::share('loggedInUser', $loggedInUser);
    }
}
您可以访问全局定义的属性:

# my_view.blade.php

<span>{{ $loggedInUser->name }}</span>

如果您想与所有页面共享数据,Kenny的答案是好的。但是,如果您只想与用户仪表板页面共享,而不是与整个网站共享,则可能需要使用视图生成器


如果您想与所有页面共享数据,Kenny的答案是好的。但是,如果您只想与用户仪表板页面共享,而不是与整个网站共享,则可能需要使用视图生成器


@马蒂卡斯塔德的答案是正确的。OP应该遵循这条路径并接受这个答案,我完全错过了您提到的仪表板页面+1@matticustard答案恰到好处。OP应该遵循这条路径并接受这个答案,我完全错过了您提到的仪表板页面+1.