2010-08-09 42 views
0

我在CakePHP的一个新的,我找的一些代码,我已经下载的功能,看起来象下面这样:

$this->set(array('fruit' => 'orange', 'vegetable' => 'kale')); 

在代码中,数组变量是在另一个控制器功能使用此访问方法:

$varsSet = $this->viewVars; 
echo $varsSet['vegetable']; 

我想什么做访问数组变量在同一个函数在了$这个集()语句是由控制器,它好像我应该能够这样做只是一行代码。我已经尝试了所有的以下内容:

echo $fruit; 
echo $this->field('fruit'); 
echo $this->MyModel->$fruit; 
echo $this->MyModel->field('fruit'); 

而所有这些抛解析,未定义的变量或变量未发现的错误。访问控制器中相同功能的变量最简单/最合适的方式是什么?

谢谢,

乔纳森

回答

1

功能$这 - >()设置在所述控制器被用来从控制器向视图传递变量。

如果您有:

$this->set('fruit' => array('orange', 'vegetable' => 'kale')); 

然后在相关视图,您可以直接访问数组

的print_r($水果);

如果你想用水果变量控制器,那么你必须把它分配给了var即:

$fruits = array('orange', 'vegetable' => 'kale'); 
$this->set('fruit', $fruits); 

不过你的问题不是很清楚你想要实现这个东西。

+0

对不起,我感到困惑......我想知道如果我只是需要创建变量,然后根据需要在控制器中使用它并将它传递给$ this-set(),这回答了我的问题,谢谢! – Jonathan 2010-08-09 14:03:13

+0

'$ this-> set('fruit'=> $ fruits)'不会工作,因为它有语法错误。改用'$ this-> set('fruit',$ fruits)'。 – Camilo 2016-07-23 23:01:11

+0

同意Camilo,修正了错误 – 2016-07-27 09:20:16

相关问题