2012-06-06 119 views
0

我打破我的頭一段時間以來以下CakePHP的代碼:CakePHP的元素,併爲每個循環

這是我的控制器:

<?php 
class HeaderController extends AppController { 
    public $helpers = array('Html', 'Form'); 

    public function index() { 

    } 

    public function usp() { 
     return $this->set('usp', $this->Header->query('SELECT * FROM USP WHERE Actief = 1')); 
    } 

} 

這是我的元素:

  <? 
       $UNSP = $this->requestAction('header/usp'); 
       print_r($UNSP); 
foreach($UNSP['header'] as $USPs): 
    echo $USPs['USP']['Naam']; 
endforeach; 

該查詢工作並在頁面加載時執行。我得到一個錯誤消息,說爲foreach()[APP/View/Elements/header.ctp,第9行]提供的無效參數。

有人可以幫我這個嗎?

+1

我的猜測是你使用'$ UNSP ['header']'應該是'$ UNSP ['Header']'。 「print_r($ UNSP)'的內容實際上是什麼樣的? – sesser

回答

1

您在某種程度上假定視圖中的$UNSP將使用您在usp()操作中設置的視圖變量進行填充。這不是如何requestAction()工作。 requestAction()可以回顯您撥打的視圖,也可以返回您要撥打的功能的值。

相反,因爲它似乎usp()沒有一個視圖,而是僅僅是用來獲取數據,你應該像這樣

public function usp() { 
    return $this->Header->query('SELECT * FROM USP WHERE Actief = 1'); 
} 

返回它然後,在你看來,告訴requestAction()要函數調用的結果如下:

$UNSP = $this->requestAction('header/usp', array('return')); 

現在$UNSP應該包含查詢的結果。

+0

工作完美謝謝(現在有一些其他錯誤,但會自己弄清楚) – AgeDeO

+0

真棒,很高興它爲你工作! – jeremyharris

相關問題