我对cakephp很新,我正在试图写一个非常基本的声明。
在我的视图文件中,我想说如果events表中的is_open列为true,则回显一下。如果不是这样,请回复其他内容。
<?php
if ($response['data']['Event']['is_open'] == true) {
echo "Yes";
} else {
echo "No";
}
?>
我无法在控制器内向后工作以获取数据。
在我的控制器中我有这样的东西:
public function some_function() {
$events = $this->Event->find('all');
}
在我的视图文件中,我收到此错误:
注意(8):未定义的索引:事件[查看/ Applications / agreement.ctp,第21行]
有谁可以指出我做错了什么?
我一直在浏览博客教程,在某些地方我很清楚,而在其他地方则不清楚。在我仍然遇到问题的地方,在视图中显示任何内容。
进一步阅读后,我想在控制器中做这样的事情:
$myVariable = $this->Event->find('first',
array( 'fields' => 'Event.is_open ',
'conditions' => array('Event.id =' => '400') ));
我希望说的是从events表中获取is_open值,其中的events.id = 400(稍后此值将是动态的)这看起来是否远程正确? - mmalv刚刚编辑
答案 0 :(得分:1)
你是如何提出$response['data']
的?
在EventsController
中,您正确设置了$this->Event->find('all')
到$events
的回报率。为了使您的视图可以使用此变量,您需要像这样调用Controller::set
:
$this->set('events', $events);
甚至更简单,只需一步即可:
$this->set('events', $this->Event->find('all'));
然后在您的“事件”视图(可能是某个地方,如View/Events/index.ctp
)中,通过名称$events
访问该变量。它的格式应为
Array(
[0] => Array(
'Event' => Array(
'id' => 1,
'name' => 'An open name!',
'is_open' => true
)
),
[1] => Array(
'Event' => Array(
'id' => 1,
'name' => 'Another event but closed',
'is_open' => false
)
)
)
所以现在你需要的只是运行一个循环:
foreach ($events as $key => $value) {
if ($value['Event']['is_open']) {
echo "Yes";
} else {
echo "No";
}
}
所有这些都在食谱中详细解释,只需浏览博客教程。