Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Всем привет!
Подскажите, пожалуйста, вызов методов контроллеров непосредственно в шаблоне - это по фен-шую или нет?
Объясню откуда вопрос. В шаблоне страницы у меня много инклудов, в которых были хардкодом зашиты определенные данные (список стран, категорий и пр.). Сейчас все это берется из БД. Соответственно, в каждом таком инклуде я вызываю метод контроллера для получения нужных данных.
Или все же правильнее написать еще один контроллер/метод, специально для страницы, который предварительно соберет ВСЕ данные нужных типов - а уже во вьюхе они уже будут отрисовываться без этих вот вызовов? Или еще как-то правильнее?
PS. Laravel 8
Не в сети
Необходимо использовать контроллер, который возвращает нужные данные во вьюху.
Не в сети
Сейчас все это берется из БД. Соответственно, в каждом таком инклуде я вызываю метод контроллера для получения нужных данных.
Вот это неожиданный переход. Почему именно метод контроллера? ))) По классике данные доставляются в представление через параметры вызова view. Если этого мало - есть View Composer. А если прям сильно хочется обращаться к чьим-то методам, то в шаблоне можно добывать некий сервис через @inject и обращаться к его методам.
Я бы таки ограничился параметрами вьюхи. Из главного представления в инклуды передавал бы нужные им параметры.
Есть еще компоненты это типа "умные инклуды".
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Из главного представления в инклуды передавал бы нужные им параметры.
Вот этого я и хотел бы избежать. Хочется "автономности" определенных инклудов. Типа включил и не паришься потом - инклуд сам извлечет нужные данные и их отрисует.
artoodetoo, на первый взгляд компоненты - это то, что мне нужно. Еще поразбираюсь. Спасибо за варианты!
Не в сети