首页 > 解决方案 > 全球化 Laravel 中的所有常用变量

问题描述

我的 Laravel 项目中有一些公共变量。例如,Logo、ico、title 等将从各自的模型中显示。现在,问题是,我需要在每个控制器索引方法中声明所有变量,否则系统会说变量未定义。如何使这些变量成为全局变量?

标签: laravellaravel-5

解决方案


您可以使用视图编辑器或与所有视图共享数据- 就在文档中。

使用视图编辑器与所有视图共享变量的一个简单示例是使用通配符 ( *) 运算符。请记住,您需要在您的服务提供商之一中注册所有这些。

use App\Logo;
use Illuminate\Support\Facades\View;

View::composer('*', function ($view) {
    $view->with('logo', Logo::first());
});

这种方法的好处是让您可以在单个回调中组织您认为是全局的所有内容 - 但它也为您提供了将其限制为某些视图/部分的约束。

否则,更简单的是您可以使用该share方法。

View::share('logo', Logo::first());

推荐阅读