【问题标题】:Cakephp elements and for each loopsCakephp 元素和每个循环
【发布时间】:2012-06-06 22:31:46
【问题描述】:

我现在对以下 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, line 9] 提供的参数无效

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我猜你使用的$UNSP['header']应该是$UNSP['Header']print_r($UNSP)的内容到底长什么样子?

标签: cakephp


【解决方案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 应该包含查询结果。

【讨论】:

  • 效果很好,谢谢(现在有一些其他错误,但我自己会解决的)
猜你喜欢
  • 2020-10-03
  • 2022-01-21
  • 2017-10-07
  • 2014-08-05
  • 2021-08-24
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多