我现在在以下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行]
有人可以帮帮我吗?
答案 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
应包含查询结果。