Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakePHP无法在我的视图中使用全局变量_Cakephp - Fatal编程技术网

cakePHP无法在我的视图中使用全局变量

cakePHP无法在我的视图中使用全局变量,cakephp,Cakephp,我正在使用cakephp v2.3.4 在/app/Config/bootstrap.php中设置一个全局变量,如下所示 Configure::write('Bike.Frontwheel','Gazette, 16 inch'); 我无法在我的任何观点中看到这个价值,我做错了什么? 我可以通过以下方式更改控制器中的值: Configure::write('Bike.Frontwheel', $Data['Bike']['description']); 视图中的代码: <?php ec

我正在使用cakephp v2.3.4

在/app/Config/bootstrap.php中设置一个全局变量,如下所示

Configure::write('Bike.Frontwheel','Gazette, 16 inch');
我无法在我的任何观点中看到这个价值,我做错了什么? 我可以通过以下方式更改控制器中的值:

Configure::write('Bike.Frontwheel', $Data['Bike']['description']);
视图中的代码:

<?php echo Configure::read('Bike.Frontwheel'); ?>

在控制器中设置变量,以便将其传递给视图:

$this->set('front_wheel', Configure::read('Bike.Frontwheel'));
<?php echo $front_wheel; ?>
那么在你看来,

$this->set('front_wheel', Configure::read('Bike.Frontwheel'));
<?php echo $front_wheel; ?>

在控制器中设置变量,以便将其传递给视图:

$this->set('front_wheel', Configure::read('Bike.Frontwheel'));
<?php echo $front_wheel; ?>
那么在你看来,

$this->set('front_wheel', Configure::read('Bike.Frontwheel'));
<?php echo $front_wheel; ?>

在配置文件夹中尝试

为此,您需要在
config
文件夹中创建一个文件,并将其加载到
bootstrap
中,如图所示

Configure::load('custom');
这表明您的文件是custom.php 现在你可以写为

$config['Bike.Frontwheel'] = 'Gazette, 16 inch';
无论你在哪里需要,你都可以称之为

$variable = Configure::read('Bike.Frontwheel');

在config文件夹中尝试

为此,您需要在
config
文件夹中创建一个文件,并将其加载到
bootstrap
中,如图所示

Configure::load('custom');
这表明您的文件是custom.php 现在你可以写为

$config['Bike.Frontwheel'] = 'Gazette, 16 inch';
无论你在哪里需要,你都可以称之为

$variable = Configure::read('Bike.Frontwheel');

@Scott Harwell,我这么说是因为他尝试了引导,我们可以用一个公共文件将一些标准值保存到特定变量中,以便我们可以在任何地方使用。引导中设置的配置在应用程序中的任何地方都可用,例如控制器。而且,配置的来源与回答这个问题无关。但是,您不应该直接从视图调用它们。相反,在控制器中获取视图所需的数据,然后将所有数据传递给视图(即我在回答中提出的)。@Nagendra,但这不是更复杂的事情吗?我假设我可以轻松地在引导文件中添加一些全局变量,但仍然不确定您的解决方案将如何解决我的问题,你能详细解释一下为什么你的建议会更好吗?我知道有很多路通往罗马,但不是所有的路都是最短的,也不是最容易开的;-)伙计们,似乎一个全局变量的行为更像一个常量,我可以在控制器中为它的相关视图更改值。但是,新值在其他控制器的视图中丢失[在我的引导文件中设置为默认值],我只希望能够在需要时在整个应用程序中更改此全局变量的值,并能够在视图中显示此新值。有什么建议吗?@Nick您应该可以通过再次调用Configure::write()从任何位置设置全局值。但是,如果您需要基于视图中的某些内容来执行此操作,那么我建议您创建一个对控制器方法的ajax调用来进行更改。在视图中不应该有任何逻辑改变这种类型的值。@Scott Harwell,我这样说是因为他在引导中尝试过,我们可以用一个公共文件将一些标准值保存到特定变量中,以便我们可以在任何地方使用。在你的应用程序中,引导中设置的配置在任何地方都可用,例如控制器。而且,配置的来源与回答这个问题无关。但是,您不应该直接从视图调用它们。相反,在控制器中获取视图所需的数据,然后将所有数据传递给视图(即我在回答中提出的)。@Nagendra,但这不是更复杂的事情吗?我假设我可以轻松地在引导文件中添加一些全局变量,但仍然不确定您的解决方案将如何解决我的问题,你能详细解释一下为什么你的建议会更好吗?我知道有很多路通往罗马,但不是所有的路都是最短的,也不是最容易开的;-)伙计们,似乎一个全局变量的行为更像一个常量,我可以在控制器中为它的相关视图更改值。但是,新值在其他控制器的视图中丢失[在我的引导文件中设置为默认值],我只希望能够在需要时在整个应用程序中更改此全局变量的值,并能够在视图中显示此新值。有什么建议吗?@Nick您应该可以通过再次调用Configure::write()从任何位置设置全局值。但是,如果您需要基于视图中的某些内容来执行此操作,那么我建议您创建一个对控制器方法的ajax调用来进行更改。确实不应该有任何逻辑改变视图中的这种类型的值。谢谢,也许是一个愚蠢的问题[新手],但我是否总是需要在每个我想在视图中使用这个全局变量的控制器中设置它?谢谢,我注意到你在下面澄清了这一点:-)谢谢,也许是一个愚蠢的问题[新手]但我是否总是需要在每个控制器中设置它,以便在视图中使用此全局变量?谢谢,我注意到您在下面澄清了这一点:-)