如何让 collection 可用于 Laravel 中的所有视图?

How can I make collection available to all views in Laravel?

我想在我的 header 中包含来自我的 Settings 模型的数据,它包含在所有页面上。

如何在所有页面加载中包含它?通常我在我的控制器中通过 Settings collection 发送,但是有没有办法在全球范围内做到这一点?

在 AppServiceProvider

中使用 View::share

https://laravel.com/docs/5.5/views#sharing-data-with-all-views

如果您的 header 是它自己的 include,您可以使用 View Composer 在呈现时自动将数据传递给该特定视图:

View::composer('your.header.include', function ($view) {
    $view->with('settings', Setting::all());
});

将其放入服务提供商 boot 方法中。 your.header.include 是您需要 settings 的视图文件的名称。