我想在 CakePHP 中创建一个全局变量。如果我在我的 app_controller.php 中定义了一些东西,比如
var $varName
我可以访问
$this->varName
从我的任何控制器,但我无法从模型中得到它。
如何创建可从模型访问的全局变量?
$varName 的值直到运行时才知道,所以我不认为 bootstrap.php 是一个选项。
我想在 CakePHP 中创建一个全局变量。如果我在我的 app_controller.php 中定义了一些东西,比如
var $varName
我可以访问
$this->varName
从我的任何控制器,但我无法从模型中得到它。
如何创建可从模型访问的全局变量?
$varName 的值直到运行时才知道,所以我不认为 bootstrap.php 是一个选项。
CakePHP 的新配置类可用于存储和检索应用程序或运行时特定的值。请注意,此类允许您在其中存储任何内容,然后在代码的任何其他部分中使用它
要保存全局变量,请使用配置类。例如:
配置::write('Company.name','Pizza, Inc.');
要稍后在代码的任何位置读取变量,请使用:
配置::read('Company.name'); //产量:'Pizza, Inc.'
存储全局常量的推荐文件位于app/config/bootstrap.php
有关更多信息,请参阅:
配置类 - 配置 CakePhp 类。或关于引导的第 3.4.7 节
你可以在 app/cofig/core.php 中声明全局变量
Configure::write('variable Name','Variable Value');
你可以这样打印:
Configure::read('Variable Name');
应用程序的全局函数和变量可以在 app/config/bootstrap.php 中定义
有关更多信息,请参阅http://book.cakephp.org/view/48/Bootstrapping-CakePHP
您可以在 app/config/ 目录中的 bootstrap.php 中定义常量。它可以全局用于任何控制器或视图。
您可以尝试使用 bootstrap.php 定义常量(蛋糕 3)
该文件非常适合许多常见的引导任务:
定义便利功能。
声明常量。
定义缓存配置。
定义日志记录配置。
加载自定义变形。
加载配置文件。
参考https://book.cakephp.org/3.0/en/development/configuration.html#bootstrapping-cakephp
其实,你为什么要这么做?模型不应该知道控制器的存在。
如果它是一个业务(模型)对象,就这样创建它。如果不是,模型不应该知道它。