【发布时间】:2011-07-20 02:07:37
【问题描述】:
我正试图将值从控制器操作直接传递给元素。
我知道如何做到这一点的唯一方法是使用 requestAction(),但出于资源原因,我不喜欢使用该功能,并且手册中不推荐它。
谁能解释一下另一种方法?
这是我现在拥有的:
鸟控制器操作:
function element_array_pass() {
$this->paginate['Bird'] = array(
'fields' => array('id', 'name'),
'contain' => array('id', 'name'),
'order' => 'Bird.id'
);
$bird_elmnt = $this->paginate('Bird');
$this->set(compact('bird_elmnt', $bird_elmnt));
}
目录: 视图/元素/element_array_pass.ctp
debug($bird_elmnt); // nothing being passed here.
目录:views/birds/index.ctp
我在这个文件中包含了元素,但是数组不会通过。
echo $this->element('element_array_pass',array("bird_elmnt" => $bird_elmnt)); // call to element.
我想在我的 index.ctp 中包含这个元素,其值是从上面包含的 action() 传递的。
【问题讨论】:
-
我相信
paginate是一个对象,而不是一个数组。在手册中查找。它应该显示如何访问它。 -
paginate是控制器中的一个数组 -
我根据我对以下想法的研究添加了更新的代码,但它仍然不起作用。
-
这是什么意思?
'contain' => array('id', 'name') -
那是用于模型可包含的,但我删除了它,它没有任何区别。我认为这可能是一个 php 设置,但我使用的是 php5,并且我的所有其他脚本都按预期执行。
标签: php arrays cakephp controller elements