Laravel 5.3 查询数据库并将其传递给所有视图

Fai*_*wan 2 php laravel laravel-5 laravel-5.3

我有一些我想从数据库中获取的动态数据并将其传递给所有视图。我试图从互联网上举一些例子,但它们似乎在我的情况下不起作用

public function boot(){}
Run Code Online (Sandbox Code Playgroud)

我无法对其进行数据库查询,只能传递硬编码值。我尝试过的另一种方法是使用基本控制器,但是在访问变量时视图给了我错误

$query = DB::table('users')->first();
\View::share('user', $query);
Run Code Online (Sandbox Code Playgroud)

任何人都有基于 BaseController 的解决方案将不胜感激,如果我错过了什么请提醒我

apo*_*fos 5

根据https://laravel.com/docs/5.4/views#sharing-data-with-all-views上的文档:

有时,您可能需要与应用程序呈现的所有视图共享一段数据。您可以使用视图外观的共享方法来实现。通常,您应该在服务提供者的引导方法中调用共享。

再次作为该站点的示例,您应该将其添加到您的服务提供商之一:

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        if (!app()->runningInConsole()) {
            $query = DB::table('users')->first();
            \View::share('user', $query);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)