Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день.
Только начинаю знакомство с фреймворками. (ранее пользовался cms)
С простыми сайтами вопросов нет, грубо говоря контроллер новостей с двумя екшенами, и контроллер страницы.
Но сейчас встал вопрос решения более не стандартной (на мой взгляд) задачи. И я затрудняюсь в её решении.
Подскажите пожалуйста, как более грамотно решить задачу.
Есть сайт, у него есть основные разделы, к примеру:
../page/about
../page/structura
В общем ничего сложного, меню сайта храню в html и подгружаю через include. А для контента есть контроллер - PageController, с action. И я вывожу страницу по её имени из роута с запросом данных в БД.
Но в задаче появляется второй момент в каждой странице есть под страницы, по хорошему сделать роут ../page/structura/item1 item2 itemN
И у каждого item есть свое меню.
Прописывать вручную в роутах столько страниц и менюшек ни сколько не DRY метод.. как можно более менее грамотно решить задачу? Ведь для каждой страницы помимо меню нужно выводить title, description а так же еще хлебные крошки..
Не в сети
На мой взгляд тебе для начала необходимо научиться работать с шаблонизатором blade. Изучи оф. документацию + посмотри видео на Ютубе.
После этого создай правильную структуру и попробуй научиться выводить свой title, description и т.п. для каждой страницы.
Не в сети
На мой взгляд тебе для начала необходимо научиться работать с шаблонизатором blade. Изучи оф. документацию + посмотри видео на Ютубе. После этого создай правильную структуру и попробуй научиться выводить свой title, description и т.п. для каждой страницы.
Спасибо, я знаю как выводить свой заголовки к каждой странице. у меня вопрос как грамотно сделать структуру..
Ибо выводить 100 страниц с одного контроллера не очень хороший вариант, нужны подразделы, подстраницы..
Не в сети
А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?
Почему нельзя выводить динамический контент из базы и причём здесь 100 страниц? Можно выводить и десятки тысяч страниц правильно используя Laravel. О чём сайт? Блог? Какие модели будешь использовать? Отношения?
Не в сети
А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?Почему нельзя выводить динамический контент из базы и причём здесь 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; ?>
Не в сети
Неверный ход мыслей.
Вот неплохая статья по организации шаблонов.
Я вижу это через вывод 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.
Не в сети
Страницы 1