22

我想在 CakePHP 中创建一个全局变量。如果我在我的 app_controller.php 中定义了一些东西,比如

var $varName

我可以访问

$this->varName

从我的任何控制器,但我无法从模型中得到它。

如何创建可从模型访问的全局变量?

$varName 的值直到运行时才知道,所以我不认为 bootstrap.php 是一个选项。

4

7 回答 7

31

CakePHP 的新配置类可用于存储和检索应用程序或运行时特定的值。请注意,此类允许您在其中存储任何内容,然后在代码的任何其他部分中使用它

于 2009-03-12T17:27:45.787 回答
30

要保存全局变量,请使用配置类。例如:

配置::write('Company.name','Pizza, Inc.');

要稍后在代码的任何位置读取变量,请使用:

配置::read('Company.name'); //产量:'Pizza, Inc.'

存储全局常量的推荐文件位于app/config/bootstrap.php

有关更多信息,请参阅:
配置类 - 配置 CakePhp 类。或关于引导的第 3.4.7 节

于 2010-12-17T14:05:27.943 回答
4

你可以在 app/cofig/core.php 中声明全局变量

Configure::write('variable Name','Variable Value');

你可以这样打印:

Configure::read('Variable Name'); 
于 2014-01-18T13:55:29.157 回答
2

应用程序的全局函数和变量可以在 app/config/bootstrap.php 中定义

有关更多信息,请参阅http://book.cakephp.org/view/48/Bootstrapping-CakePHP

于 2009-03-13T21:26:00.277 回答
1

您可以在 app/config/ 目录中的 bootstrap.php 中定义常量。它可以全局用于任何控制器或视图。

于 2013-06-20T18:10:49.613 回答
0

您可以尝试使用 bootstrap.php 定义常量(蛋糕 3)

该文件非常适合许多常见的引导任务:

定义便利功能。

声明常量。

定义缓存配置。

定义日志记录配置。

加载自定义变形。

加载配置文件。

参考https://book.cakephp.org/3.0/en/development/configuration.html#bootstrapping-cakephp

于 2017-12-28T16:10:15.890 回答
-2

其实,你为什么要这么做?模型不应该知道控制器的存在。

如果它是一个业务(模型)对象,就这样创建它。如果不是,模型不应该知道它。

于 2009-03-12T17:37:34.720 回答