鑑於

2012-02-16 60 views
0

獲取的值在控制器中我做到這一點鑑於

<?php 

$data = array(
    'color' => 'pink', 
    'type' => 'sugar', 
    'base_price' => 23.95 
); 
//make $color, $type, and $base_price 
//available to the view: 
$this->set($data); 
?> 

並在視圖我直接打電話

<?=$color?> 

但沒有東西是回聲-ED。 我錯了它的使用?

+1

不要使用短標記,直到永遠。 – Erik 2012-02-16 08:00:38

+0

短標籤是完全正常的,如果* *您控制服務器的環境中,*或*你的目標PHP 5.4,並限制自己現在能始終保持短回波語法。 – Charles 2012-02-16 08:14:46

+0

查爾斯有一個不錯的地方!感謝Charles。 – 2012-02-16 08:22:03

回答

2

你的$this->set()用法是正確的。

最有可能你沒有PHP shorttags開啓(more info)。這將導致PHP輸出整個<?=$color?>塊作爲文本,它會被解析爲一個格式不正確的HTML標籤,簡單地忽略。檢查您的HTML源代碼,看看完整的輸出是什麼,而不僅僅是您的瀏覽器顯示什麼。

作爲一種補救措施,<?php echo $color; ?>應該工作得很好。

+0

謝謝,但它只輸出顏色和base_price,類型消失。 – 2012-02-16 08:09:20

+0

@JohnSmith $類型的消失很奇怪。這可能是因爲有一個與$ type衝突的變量,據我猜測。 – mmhan 2012-02-16 08:57:12

+0

@John你用什麼版本的Cake? – Farray 2012-02-16 15:07:51

0

正如Farray指出的那樣,已使用的設定()方法不正確。正確的語法如下:

編輯:我誤讀了Farrays post,事實上你已經正確使用了set(),因爲它可以將關聯數組作爲第一個命令。這可能是值得改變的變量類型的東西等是$數據和利用的設置方法如下:

<?php 
$myarray = array(
    'color' => 'pink', 
    'type' => 'sugar', 
    'base_price' => 23.95 
); 
//make $color, $type, and $base_price 
//available to the view: 
$this->set('myarray', $myarray); 
?> 

或者您可以使用的簡便方法,並利用緊湊的()方法:

<?php 
$this->set(compact('myarray')); 
?> 

內,您的看法,如果你運行的PR($ myarray的);你應該看到你的數組整齊地以遞歸的方式格式化。如果你沒有看到它,那麼:

  • 。在你的視圖文件中的錯誤正在被你的PR()命令之前抓到
  • 您在php.ini配置文件
  • 有PHP短標記關閉
  • 有一個深層次的問題,需要在控制器

問候, 西蒙

+0

@Farray說是對的,哥們。 – mmhan 2012-02-16 08:55:37

+0

@Mike我的錯誤,你確實是正確的,更新答案。 – SimonDowdles 2012-02-16 09:09:09

-1

你們正在創造一種複雜> CakePHP的意思呢編碼cakefully不痛˚F ully.Just使用

<?php 
$myarray = array(
    'color' => 'pink', 
    'type' => 'sugar', 
    'base_price' => 23.95 
); 
//make $color, $type, and $base_price 
//available to the view: 

$this->set('viewdata', $myarray); 
?> 

從視圖中抓住你的變量這樣

<?php echo $viewdata['color']; 

echo $viewdata['type']; 


echo $viewdata['base_price']; 
?> 
+0

比使用CakePHP在其文檔中提供的確切示例很難獲得更多的「小東西」:http://book.cakephp.org/2.0/en/controllers.html?highlight=color%20pink#interacting-with-views – Farray 2012-02-18 22:03:28

+0

我離開了我的方式做到這一點..這就是所有。任何方式使用你的方法 – jack 2012-02-20 06:37:47