Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
class Group_Controller extends Base_Controller {
public function action_view($group_identifier)
{
$group = new Group();
return $group->view($group_identifier);
}
}
<?php
class Group extends Eloquent {
public static $key = 'identifier';
// Получить группу по идентификатору.
public function view($group_identifier) {
if($groups = DB::table('groups')->where('identifier', '=', $group_identifier)->first()) {
return View::make('group.index',
array(
'group_name' => $groups->group_name,
'group_description' => $groups->group_description,
'list' => $this->topics($group_identifier)
));
} else {
return View::make('group.error', array('error' => 'Группа не найдена.'));
}
}
// Получить все записи группы.
private function topics($group_identifier) {
//...
if($topics = DB::table('topics')->where('group_identifier', '=', $group_identifier)->get()) {
foreach ($topics as $topic) {
return View::make('group.list',
array(
'topic' => $topic
));
}
} else {
return 'В этой группе пусто.';
}
}
}
Проблема в том, что независимо от количества записей в группе, выводиться всего одна.
Изменено denis (12.01.2013 19:33:56)
Не в сети
Не в сети
- У тебя group.list создаётся в двух случаях, и в первом (метод view()) ты делаешь
PHP->nest('list', 'group.list');
, не привязывая никаких переменных. topic_title для этого шаблона не передана и поэтому происходит ошибка.
Уже подкорректировал, теперь другая проблема.
Я пробывал возвращать просто $topic внутри foreach, а потом в nest в третий параметр передавал метод topics: (array('topic' => $this->topics($group_identifier)). Но все равно выводилась одна запись, а если например группа существовала, а записей в ней не было, то ошибка вылазила. Зато когда View внутри foreach в группе у которой нету записей выводиться сообщение "В этой группе пусто. ", а не ошибка. Но как я понимаю тут опять создается куча group.list.
Изменено denis (12.01.2013 19:59:36)
Не в сети
Не в сети
Не в сети
Страницы 1