Laravel по-русски

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

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

#1 18.12.2022 21:35:27

Majestio
Откуда: Минск
Сообщений: 23
Сайт

Вызов метода контроллера непосредственно в шаблоне Laravel

Всем привет!

Подскажите, пожалуйста, вызов методов контроллеров непосредственно в шаблоне - это по фен-шую или нет?

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

Или все же правильнее написать еще один контроллер/метод, специально для страницы, который предварительно соберет ВСЕ данные нужных типов - а уже во вьюхе они уже будут отрисовываться без этих вот вызовов? Или еще как-то правильнее?

PS. Laravel 8

Не в сети

#2 19.12.2022 07:55:46

Re: Вызов метода контроллера непосредственно в шаблоне Laravel

Необходимо использовать контроллер, который возвращает нужные данные во вьюху.

Не в сети

#3 19.12.2022 10:16:43

Re: Вызов метода контроллера непосредственно в шаблоне Laravel

Сейчас все это берется из БД. Соответственно, в каждом таком инклуде я вызываю метод контроллера для получения нужных данных.

Вот это неожиданный переход. Почему именно метод контроллера? ))) По классике данные доставляются в представление через параметры вызова view. Если этого мало - есть View Composer. А если прям сильно хочется обращаться к чьим-то методам, то в шаблоне можно добывать некий сервис через @inject и обращаться к его методам.

Я бы таки ограничился параметрами вьюхи. Из главного представления в инклуды передавал бы нужные им параметры.
Есть еще компоненты это типа "умные инклуды".


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#4 19.12.2022 10:55:24

Majestio
Откуда: Минск
Сообщений: 23
Сайт

Re: Вызов метода контроллера непосредственно в шаблоне Laravel

Из главного представления в инклуды передавал бы нужные им параметры.

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

artoodetoo, на первый взгляд компоненты - это то, что мне нужно. Еще поразбираюсь. Спасибо за варианты!

Не в сети

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