0

我现在对下面的 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 行提供的参数无效]

有人可以帮我吗?

4

1 回答 1

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应该包含查询的结果。

于 2012-06-06T14:31:46.603 回答