我称其为我的许多观点:
public function index()
{
return view('dashboard' , array(
'companyName' => 'Yoyo.Yo',
'showSlideMenu' => true,
'showTopNavigation' => true,
'showExpanded' => true,
'userTasks' => COMMON_getUserTasks(),
'userCash' => COMMON_getUserCash(),
));
}
我希望我的视图“自动”知道例如“ companyName”始终为“ Yoyo.yo”,而不必为每个视图都像上面那样设置。
有没有办法为这些值全局设置默认值?
上下文
我设置了默认的电子邮件验证路径:
使用:
Auth::routes();
Auth::routes(['verify' => true]);
在web.php
我可以轻松地编辑模板,但是我不知道如何制作正在创建的这些路线,并且了解每个视图上需要的变量。
(而且,当默认值通常相同时,必须为每个视图指定它很麻烦)
HACK
我知道我可以做类似模板的事情:
<?php
$companyName = isset($companyName) ? $companyName : 'My Default';
?>
但这似乎太过分了。当然有更好的方法吗?
答案 0 :(得分:1)
如果需要允许轻松自定义此“常量”,则可以为其创建一个自定义配置文件(或附加到任何现有文件):
config/defaults.php
:
<?php
return [
"company_name" => "Acme Inc."
];
然后,您可以直接在视图上使用config facade:
resources/views/your-view.blade.php
:
<p>Welcome to {{ config("defaults.company_name") }}</p>
此外,您还可以使用环境变量,因此您无需更改任何代码,只需更改您的.env
文件即可:
config/defaults.php
:
<?php
return [
"company_name" => env("DEFAULT_COMPANY_NAME", "Acme Inc.")
];
.env
:
DEFAULT_COMPANY_NAME=My Company
如果未在DEFAULT_COMPANY_NAME
上设置.env
,它将回退到“ Acme Inc。”。