Laravel по-русски

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

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

#1 18.04.2022 20:38:50

Как создать структуру

Добрый день.
Только начинаю знакомство с фреймворками. (ранее пользовался cms)
С простыми сайтами вопросов нет, грубо говоря контроллер новостей с двумя екшенами, и контроллер страницы.
Но сейчас встал вопрос решения более не стандартной (на мой взгляд) задачи. И я затрудняюсь в её решении.

Подскажите пожалуйста, как более грамотно решить задачу.

Есть сайт, у него есть основные разделы, к примеру:
../page/about
../page/structura


В общем ничего сложного, меню сайта храню в html и подгружаю через include. А для контента есть контроллер - PageController, с action. И я вывожу страницу по её имени из роута с запросом данных в БД.

Но в задаче появляется второй момент в каждой странице есть под страницы, по хорошему сделать роут ../page/structura/item1  item2 itemN

И у каждого item есть свое меню.

Прописывать вручную в роутах столько страниц и менюшек ни сколько не DRY метод.. как можно более менее грамотно решить задачу? Ведь для каждой страницы помимо меню нужно выводить title, description а так же еще хлебные крошки..

Не в сети

#2 19.04.2022 18:03:40

Re: Как создать структуру

На мой взгляд тебе для начала необходимо научиться работать с шаблонизатором blade. Изучи оф. документацию + посмотри видео на Ютубе.
После этого создай правильную структуру и попробуй научиться выводить свой title, description и т.п. для каждой страницы.

Не в сети

#3 19.04.2022 20:40:28

Re: Как создать структуру

На мой взгляд тебе для начала необходимо научиться работать с шаблонизатором blade. Изучи оф. документацию + посмотри видео на Ютубе. После этого создай правильную структуру и попробуй научиться выводить свой title, description и т.п. для каждой страницы.

Спасибо, я знаю как выводить свой заголовки к каждой странице. у меня вопрос как грамотно сделать структуру..
Ибо выводить 100 страниц с одного контроллера не очень хороший вариант, нужны подразделы, подстраницы..

Не в сети

#4 19.04.2022 21:01:39

Re: Как создать структуру

А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?
Почему нельзя выводить динамический контент из базы и причём здесь 100 страниц? Можно выводить и десятки тысяч страниц правильно используя Laravel. О чём сайт? Блог? Какие модели будешь использовать? Отношения?

Не в сети

#5 19.04.2022 21:21:06

Re: Как создать структуру

А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?Почему нельзя выводить динамический контент из базы и причём здесь 100 страниц? Можно выводить и десятки тысяч страниц правильно используя Laravel. О чём сайт? Блог? Какие модели будешь использовать? Отношения?

Возможно проговорив вопрос, я сам пойму ответ.

Сайт - школьной тематики (сайт школы).

У меня есть свой хидер и футер, далее есть шаблон страницы (всё динамическое).
Есть страницы контроллер page ../page/about ../page/elementary ../page/hightschool и тп.
У каждой страницы есть подразделы, сейчас я вижу это как:
основная страница:
../page/hightschool
её под страницы:
  ../page/vacant
  ../page/exam

И в принципе ничего плохого в этом нет, но я хотел бы иметь ссылки вида ../page/hightschool/exam

При этом к каждой странице нужно  свое меню. В рамках одной страницы оно дублируется, например в hightschool меню одно, в elementary другое и на их под страницах оно соответствует основной странице.

Я вижу это через вывод case, но у меня уже таких 10 кейсов а еще не все страницы созданы..
пример кода..
<?php switch ($pagename): ?>
<?php case "about": include '_menu_about.tpl'; break; ?>
<?php case "payservice": include '_menu_about.tpl'; break; ?>
<?php case "careerguidance": include '_menu_about.tpl'; break; ?>
<?php case "education": include '_menu_education.tpl'; break; ?>
<?php case "gpd": include '_menu_primaryschool.tpl'; break; ?>

Не в сети

#6 20.04.2022 06:45:25

Re: Как создать структуру

Неверный ход мыслей.

Вот неплохая статья по организации шаблонов.


Я вижу это через вывод case, но у меня уже таких 10 кейсов а еще не все страницы созданы..пример кода..<?php switch ($pagename): ?><?php case "about": include '_menu_about.tpl'; break; ?><?php case "payservice": include '_menu_about.tpl'; break; ?><?php case "careerguidance": include '_menu_about.tpl'; break; ?> <?php case "education": include '_menu_education.tpl'; break; ?><?php case "gpd": include '_menu_primaryschool.tpl'; break; ?>

Точно не так и для меню можно взять готовый пакет, например spatie/laravel-menu.

Не в сети

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