2010-08-09 18 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

相關問題