MVC | Где получать имя категории, пользователей? Делаю mvc oop блог, и столкнулся с вопросом
Есть пост, в котором отображется катерия и автор. В базе данных лежат category_id и author_id
Вопрос в том, как правильно организовать получение имени категории и автора, имея их айди?
Изначально была идея передать объект модели(category, user) в вид, и уже там выполнять нужные методы(getCategoryName или getUserName). Но потом узнал, что это плохая практика, и надо делать вид максимально простым, подавая туда уже готовые данные.
Сейчас пришел к такому решению.
В контроллере для каждого поста добавить элементы:$postList = Post::getPostList(); // модель возвращает список постов
foreach($postList as $post) {
$post['category_name'] = Category::getCategoryName($post['category_id']);
$post['author_name'] = User::getCategoryName($post['author_id']);
}
$view->render($postList); // передаю посты в вид
Можно ли поступить так?

29 Мар 2021 в 19:57
167 +1
0
Ответы
1

Да, ваше решение вполне приемлемо. Вместо того, чтобы передавать объекты модели в вид и вызывать методы внутри вида, лучше выполнить эти действия в контроллере и передать уже готовые данные в вид. Таким образом, вы разделяете логику получения данных и их отображения, что соблюдает принцип разделения ответственности в MVC.

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

Так что да, можно поступить именно так, как вы описали.

17 Апр 2024 в 19:56
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир