Cakephp元素和每个循环

时间:2012-06-06 13:51:31

标签: 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 个答案:

答案 0 :(得分: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应包含查询结果。

相关问题