Я создал метод в моей модели, который успешно отображает правильные данные, когда I pr ($ variable) на экран. Однако без печати я получаю сообщение «Уведомление (8): Неопределенная переменная».cakephp fat model все еще неопределенная переменная в действии вида
Модель в вопросе «промышленность» имеет много «новостей и событий».
То, что я пытаюсь сделать в представлении для конкретной отрасли, это показ новостей, которые состоят из двух разных условий. Одним из новостей является 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 \ просмотр .ctp, строка 12]
Предупреждение (2): Недействительный аргумент для Еогеаспа() [APP \ Вид \ Промышленность \ view.ctp, строка 12]
Я подозреваю, что это что-то маленькое, с видом.
Спасибо, Paul
благодаря Нику. Я подозревал, что это связано с тем, как «набор» и переменные работают, но не нашли ответа. – Paul
спасибо Нику. Я подозревал, что это связано с тем, как работают «набор» и переменные. После внесения изменений я не вижу никаких результатов. Но когда я отлаживаю каждую переменную, возвращаются правильные данные. Я думаю, что это связано с маршрутизацией. Для каждой отрасли я добавил маршрут следующим образом: Router :: connect ('/ industryName1', array \t \t ('controller' => 'industries', 'action' => 'view', 1)); Поскольку на этом сайте будет только четыре отрасли, я хотел бы, чтобы их имена/слизни были в ссылке на каждое представление. Я не уверен, что лучший способ сделать это и обеспечить, чтобы каждая переменная в представлении заполнялась данными. – Paul
Вы подтвердили правильность работы маршрутизации? Я имею в виду, вы попадаете в правильную функцию с правильными переменными данными? И после этого он отображает правильный файл вида? –