Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.01.2013 17:49:19

Помогите решить проблему.

Код контроллера:

PHP
class Group_Controller extends Base_Controller {
    public function 
action_view($group_identifier)
    {
        
$group = new Group();
        return 
$group->view($group_identifier);
    }
}

Код модели:

PHP
<?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)

Не в сети

#2 12.01.2013 19:05:55

Re: Помогите решить проблему.

У тебя group.list создаётся в двух случаях, и в первом (метод view()) ты делаешь PHP->nest('list''group.list');, не привязывая никаких переменных. topic_title для этого шаблона не передана и поэтому происходит ошибка.

Не в сети

#3 12.01.2013 19:12:33

Re: Помогите решить проблему.

  1. У тебя 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)

Не в сети

#4 13.01.2013 10:17:19

Re: Помогите решить проблему.

По-моему у тебя что-то с логикой в коде. Чего ты хочешь добиться, делая return внутри цикла?

PHP
function ...() {
  
$tpoics DB::...;
  if (
$topics) {
    return 
View::make('list'compact('topics'));
  } else {
    return 
View::make('empty');
  }
}

Не в сети

#5 13.01.2013 10:39:05

Re: Помогите решить проблему.

По-моему у тебя что-то с логикой в коде. Чего ты хочешь добиться, делая return внутри цикла?

Пытаюсь вывести все записи группы через цикл, но выводить всего одна запись.

Изменено denis (13.01.2013 10:40:22)

Не в сети

Подвал раздела