如何在Yii2中传递视图常量?

时间:2015-07-26 15:10:06

标签: php yii2

所以基本上我将基于PHP的网站设计为更新,更受支持的框架。目前我的网站是在Kohana 2.3.4中编写的,我正在转向Yii2框架。我面临的最大问题是不同之处在于,在我的Kohana网站上,我在翻译的情况下使用了所有HTML的常量,但现在我没有问题,因为我可以使用:Yii::t()

虽然我已经解决了这个问题,但我需要知道如何将我的设置数组传递给每个控制器上的所有操作。设置从我的SettingsQuery模型加载,应该从应用程序中的所有视图访问,即。类似全局常量的东西。我尝试了一些从研究中得到的提示,但没有任何工作,因为方案与thisthis略有不同。

我尝试过一种实现this方式的方法,但只有当我的设置有静态值时它才有效。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

我知道在Yii 2.0中声明全局常量的两个可能的地方是:

  1. 您的应用程序Entry Scripts用于孔过程可能依赖的全局变量。可能需要严格的初始化设置,例如要激活的模块以及要禁用的组件
  2. [your app]/config/params.php文件我认为是正确的 放置全局设置的地方,因为这就是原因 为...而建。如果你打开那个文件,你就会在里面找到它:

    return [
        'adminEmail' => 'admin@example.com',
    ];
    

    此信息可在您的申请中的任何位置访问 这个:

    $admin_email = \Yii::$app->params['adminEmail'] ;   
    

    因此,为了将其与您的 SettingsQuery模型相关联,您将会这样做 需要创建一个 Bootstrap 类,需要创建一个 来自模型的实例,并使用它来设置全局常量 引导你的应用程序。      @arogachev有一个关于如何在this StackOverflow question.中创建 Bootstrap 类的很好的例子