如何仅与 laravel 中的特定控制器命名空间共享站点标题和某些设置变量?

How to share site title and some settings variable only with certain controller namespace in laravel?

我有一个管理部分,位于 应用程序dev/admin

我想将网站标题和一些设置(如缓存版本)共享给此 namespace.How 下的所有视图,我可以这样做吗? 我读了这个 http://laravel.com/docs/5.1/views#sharing-data-with-all-views 但我只想在 admin 命名空间下共享数据。我该怎么做?

您可以在该名称空间上创建一个抽象控制器,并使来自同一名称空间的所有其他控制器扩展该抽象控制器。

在抽象控制器的构造函数中,您可以使用此代码共享变量

view()->share([
    'version'  => $foo,
    'settings' => $bar,
]);

如果您不喜欢使用构造函数,您还可以在抽象控制器上使用任何其他方法,并确保在加载视图之前立即在子控制器上调用该方法。

另一种方法是使用该方法创建特征并确保命名空间上的所有控制器都使用该特征。