我在我的模型中创建了一个方法,当我将pr($ variable)显示到屏幕时,该方法成功显示了正确的数据。但是没有打印,我收到'Notice(8):Undefined variable'消息。
有问题的模型'行业'有很多'新闻和事件'。
我在特定行业的视图中尝试做的是显示两种不同条件的新闻。一种类型的新闻是news.type = highlight(仅显示一个精彩故事),第二个是活动故事列表。
这是我模型中的方法。
// industry highlight news
public function getHighlightNews() {
$newsHeadline = $this->News->find('first', array(
'conditions' => array('News.type' => 'highlight','News.active' => 'yes'),
'limit' => 1,
'recursive' => 0,
'fields' => array(
'News.slug',
'News.title',
'News.date',
'News.imgPathThumb',
'News.alt_tag',
'News.id',
'News.caption',
'News.body'
),
));
return $newsHeadline;
}
public function getNewsList() {
$newslist = $this->News->find('all', array(
'conditions' => array('News.active = "Yes"','News.industry_id = 1'),
'limit' => 4,
'recursive' => 0,
'fields' => array(
'News.slug',
'News.title',
'News.date',
'News.industry_id',
'News.imgPathThumb',
'News.alt_tag',
'News.id',
'News.caption',
'News.body'
),
));
return $newslist;
}
这就是我的行业控制人员。我为新闻列表和事件列表创建了类似的模型方法。
public function view($id = null) {
$this->layout='default';
$this->Industry->id = $id;
if (!$this->Industry->exists()) {
throw new NotFoundException(__('Invalid industry'));
}
$eventlist = $this->Industry->getEventsList($id);
$newslist = $this->Industry->getNewsList($id);
$highlights = $this->Industry->getHighlightNews($id);
//pr($newslist); die;
$this->set('eventlist', $eventlist, 'newslist', $newslist, 'highlights', $highlights);
}
这是我的观点:
<div class="first articles">
<?php foreach ($highlights as $highlight): ?>
<h1><?php echo $highlight['Industry']['title']; ?></h1>
<p><?php echo $highlight['Industry']['body']; ?>
<?php endforeach; ?>
</p>
</div><!-- /articles -->
我在视图中收到的消息是:
注意(8):未定义的变量:高亮显示[APP \ View \ Industries \ view.ctp,第12行]
警告(2):为foreach()[APP \ View \ Industries \ view.ctp,第12行]提供的参数无效
我怀疑这是我忽略的小事。
谢谢,保罗
答案 0 :(得分:2)
设置变量不起作用。你需要改变这个:
$this->set('eventlist', $eventlist, 'newslist', $newslist, 'highlights', $highlights);
对此:
$this->set('eventlist', $eventlist);
$this->set('newslist', $newslist);
$this->set('highlights', $highlights);
或者这个:
$this->set(compact('eventlist','newslist','highlights'));