0

我把它称为我的许多观点:

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 中

我可以轻松地编辑模板,但我不知道如何制作这些正在创建的路线,知道我在每个视图上需要的变量。

(此外,当默认值通常相同时,必须为每个视图指定它很麻烦)

黑客

我知道我可以做类似模板的事情:

<?php
   $companyName = isset($companyName) ? $companyName : 'My Default';
?>

但这似乎太hacky了。肯定有更好的方法吗?

4

1 回答 1

1

如果您需要允许轻松自定义此“常量”,您可以为其创建自定义配置文件(或附加到任何现有的):

config/defaults.php

<?php
    return [
        "company_name" => "Acme Inc."
    ];

然后你可以直接在你的视图上使用配置外观:

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.”。

于 2019-11-20T23:19:35.303 回答