Kohana / ORM - Присвойте отношения взглядам - PullRequest
1 голос
/ 28 июня 2011

У меня есть объект в методе контроллера:

$post = ORM::factory('post', array('slug' => $slug);  

, который отправляется в представление:

$this->template->content = View::factory('view')->bind('post', $post);

Я создал 1-n связь между постом и комментариями.Пока все хорошо.

Основная проблема заключается в следующем: как передать комментарии к просмотру?В настоящее время я получаю их в виде ($post->comments->find_all()), но я не чувствую, что это лучший метод (и, по моему скромному мнению, не соответствующий стандартам MVC).Я также думал о назначении их свойству в контроллере ($post->comments), однако я получаю ошибку о неопределенном свойстве (что имеет смысл для меня).

Как бы вы порекомендовали решить эту проблему?

1 Ответ

1 голос
/ 28 июня 2011

Почему бы не захватить комментарии в контроллере и передать их в представление для презентации?По крайней мере, так я бы поступил по этому поводу.

$post = ORM::factory('post', array('slug' => $slug));
$comments = $post->comments->find_all();
$this->template->content = View::factory('view')->bind('comments', $comments);

Что касается вашего многостраничного комментария, который, я полагаю, вы имеете в виду сообщения ... Это то, что я обычно делал бы.*

Хотя это может быть не самый дружественный к ресурсам способ сделать это, особенно если вы работаете со многими постами.Таким образом, передача сообщений в представление, а затем выполнение цикла foreach внутри представления, может быть лучшим способом для этого.

$posts = ORM::factory('post', array('slug' => $slug))->find_all();
$this->template->content = View::factory('view')->bind('posts', $posts);

Хотя я также не обязательно думаю запускать запрос выбора из представленияэто худшая вещь в мире.Хотя я не эксперт ...;)

Я задал этот вопрос некоторое время назад в отношении CodeIgniter ... передача массива в представление и цикл по нему, казалось, был предпочтительным ответом ...

Использование CodeIgniter - плохая практика загрузки представления в цикле

...