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); // передаю посты в вид Можно ли поступить так?
Да, ваше решение вполне приемлемо. Вместо того, чтобы передавать объекты модели в вид и вызывать методы внутри вида, лучше выполнить эти действия в контроллере и передать уже готовые данные в вид. Таким образом, вы разделяете логику получения данных и их отображения, что соблюдает принцип разделения ответственности в MVC.
В вашем случае, добавление имени категории и автора к каждому посту в контроллере является хорошим подходом. Таким образом, в виде вам уже не нужно будет вызывать методы модели для получения этих данных, что делает вид более простым и легким для понимания.
Так что да, можно поступить именно так, как вы описали.
Да, ваше решение вполне приемлемо. Вместо того, чтобы передавать объекты модели в вид и вызывать методы внутри вида, лучше выполнить эти действия в контроллере и передать уже готовые данные в вид. Таким образом, вы разделяете логику получения данных и их отображения, что соблюдает принцип разделения ответственности в MVC.
В вашем случае, добавление имени категории и автора к каждому посту в контроллере является хорошим подходом. Таким образом, в виде вам уже не нужно будет вызывать методы модели для получения этих данных, что делает вид более простым и легким для понимания.
Так что да, можно поступить именно так, как вы описали.