我的Laravel项目中有一些公共变量。例如,徽标,ico,标题等将根据其各自的模型显示。现在,问题是,我需要在每个控制器索引方法中声明所有变量,否则系统会说变量未定义。如何使这些变量全局化?
答案 0 :(得分:1)
您可以使用view composers或share data with all views-在文档中就可以使用。
使用视图编辑器与所有视图共享变量的简单示例是使用通配符(*
)运算符。请记住,您需要在所有服务提供商中注册所有这些内容。
use App\Logo;
use Illuminate\Support\Facades\View;
View::composer('*', function ($view) {
$view->with('logo', Logo::first());
});
这种方法的好处是可以让您在单个回调中组织所有被认为是全局的东西-但同时也给您提供了将其限制在某些视图/部分的约束。
否则,您可以更简单地使用share
方法。
View::share('logo', Logo::first());