Laravel по-русски

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

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

#1 Laravel 6/7/8/9/10 » SQL, PDF, файловое хранение » 26.12.2022 16:19:47

Mitzury
Ответов: 0

Здравствуйте. подскажите пожалуйста как лучше организовать такую вещь как:

Мне необходимо часто загружать большое число файлов (чаще pdf) и использовать их на сайте.
Я на PHP придумал для себя удобный (как мне кажется) скрипт - когда я загружаю файл, он переименовывается (с длинного порой до упора 250 символов) в короткий хеш, загружается в папку и записывается в базу данных как ссылка на файл, хеш, название по русски.

Теперь хочу выводить файл на странице. С одной стороны я могу сделать запрос select всех файлов и добавить признак страницы  , чтобы выводить только те файлы которые нужны к этой странице. Но это не совсем удобно, т.к. файлы могут быть кроссстраничными. Удобнее всего было бы использовать конкретно какой-то кусочкек (много кусочков) и вставить их по странице. аля <?php ..file1.. ?> и тп.

Или проще сделать генерацию ссылки <a href.. для каждого файла и вставлять в базу данных в текст статей?

#2 Re: Laravel 6/7/8/9/10 » Как создать структуру » 19.04.2022 21:21:06

А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?Почему нельзя выводить динамический контент из базы и причём здесь 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; ?>

#3 Re: Laravel 6/7/8/9/10 » Как создать структуру » 19.04.2022 20:40:28

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

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

#4 Laravel 6/7/8/9/10 » Как создать структуру » 18.04.2022 20:38:50

Mitzury
Ответов: 5

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

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

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


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

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

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

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

#5 Re: Laravel 6/7/8/9/10 » Динамические статические страницы » 29.01.2022 23:43:04

Относительные ссылки, их наименования сохраняются в БД, а выводить их можно в цикле в представлении при помощи foreach

Хочется изучить и освоить это)

А про способ - логично, допустим, но это не выход.. если мне надо вывести такое в два списка или в разнобой. если два списка можно найти выход а если в разнобой?

#6 Re: Laravel 6/7/8/9/10 » Динамические статические страницы » 29.01.2022 23:14:00

Я банально не понимаю как записать это все в базу данных.. неужели просто в text?

#7 Re: Laravel 6/7/8/9/10 » Динамические статические страницы » 29.01.2022 22:18:52

Посмотри проект на который я скидывал ссылку выше. Подумай. Скинь пример реального своего кода.

<p><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="http://www.sh290.krsl.gov.spb.ru/VospitatlRabota/gbou_sosh_290_programma_vospitanija_na_period_s_se.pdf"><span style="color:#0000cd;"><strong>Рабочая программа воспитания и социализации обучающихся ГБОУ СОШ № 290 Санкт-Петербурга</strong></span></a><span style="color:#0000cd;">&nbsp;(на период с сентября 2021 по декабрь 2025)</span></span></span></p>

<p><span style="color:#0000cd;"><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><b>Образовательные программы:</b></span></span></span></p>

<ul>
 <li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/oop_noo_2021-2022.pdf"><span style="color:#0000cd;">Основная образовательная программа начального общего образования</span></a></span></span></li>
 <li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/ann_oop_noo_2021-2022.pdf"><span style="color:#0000cd;">Аннотация к основной образовательной программе начального общего образования</span></a></span></span></li>
 <li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/oop_ooo_2021-2022.pdf"><span style="color:#0000cd;">Основная образовательная программа основного общего образования</span></a></span></span></li>
 <li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><u><a href="/Obrazovanie/OOP/2021-2022/ann_oop_ooo_2021-2022.pdf" target="_blank"><span style="color:#0000cd;">Аннотация к основной образовательной программе основного общего образования</span></a></u></span></span></li>
 <li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/oop_soo_2021-2022.pdf"><span style="color:#0000cd;">Основная образовательная программа среднего общего образования</span></a></span></span></li>
 <li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><u><a href="/Obrazovanie/OOP/2021-2022/ann_oop_soo_2021-2022.pdf" target="_blank"><span style="color:#0000cd;">Аннотация к основной образовательной программе среднего общего образования</span></a></u></span></span></li>
 <li><span style="font-size:20px;"><a href="/Obrazovanie/OOP/2021-2022/aoop_noo_2021-2022.pdf"><span style="color:#0000cd;"><span style="font-family:Times New Roman,Times,serif;">Адаптированная основная образовательная программа начального общего образования&nbsp;для детей с ОВЗ 1-4 классы&nbsp; (АООП НОО)&nbsp;</span></span></a></span></li>
 <li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><u><a href="/Obrazovanie/OOP/2021-2022/ann_aoop_noo_2021-2022.pdf" target="_blank"><span style="color:#0000cd;">Аннотация к основной образовательной программе начального общего образования для детей с ОВЗ 1-4 классы</span></a></u></span></span></li>
 <li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="http://www.sh290.krsl.gov.spb.ru/index/dopolnitelnye_obshheobrazovatelnye_obshherazvivajushhie_programmy_2021_2022_uchebnyj_god/0-671"><span style="color:#0000cd;">Дополнительные общеобразовательные общеразвивающие программы 2021-2022 учебный год</span></a></span></span></li>
</ul>

Это не мой код но нужно переносить этот сайт с ucoz. Оптимизировать количество ссылок нельзя. Т.к. должно быть вот так списком либо документы либо что то другое..

#8 Re: Laravel 6/7/8/9/10 » Динамические статические страницы » 21.01.2022 10:55:20

Konstantin_N

Возможно некорректно задаю вопрос..

У меня есть страница, допустим

Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum 
$image$
Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum $link$

Таких несколько.

Далее:

(boostrap аккордеон)
$link$
$link$
$link$

И все возможные варианты страниц.

Мне кажется если это и можно сделать одним шаблоном то будет много @if..что-то.


PS.
Само собой header, footer, sidebar я отделил в отдельный файл.

#9 Re: Laravel 6/7/8/9/10 » Динамические статические страницы » 21.01.2022 10:17:12

Konstantin_N

Например есть главная страница:

@extends('layouts.app')
@section('title')Главная страница@endsection
@section('content')
Контент.
@endsection

В месте где у меня контент - это статика, то есть тут я бутстрапом прописываю текст + ссылки либо вертикальный акордеон и тп.

Для каждой страницы получается надо создавать такой шаблон как выше. А страниц предполагается много.. И хоть они статика но редактировать периодически надо.. а заглядывая на ftp..
/about.blade.php
/contacts.
/education
/gia
/documents
/information
/information/dist

ну и тп, на вскидку страниц 30.

Можно сделать, с одной стороны как новости. Один шаблон а дальше подставлять данные из БД, но как записать в БД данные страницы где страницы сильно разнятся, не только текстом, но и технологиями визуализации..

#10 Re: Laravel 6/7/8/9/10 » Динамические статические страницы » 20.01.2022 22:03:28

Konstantin_N

Можно наводку на нужную функцию?
Я листал но не нашел ничего похожего.

Есть инклюд, но это не то.

#11 Laravel 6/7/8/9/10 » Динамические статические страницы » 19.01.2022 16:14:59

Mitzury
Ответов: 13

Добрый день.
Только начинаю осваивать Laravel, до этого был небольшой опыт с Django.

В данный момент я создаю небольшой по функционалу сайт, который можно развернуть в принципе и на CMS. Но хочется узнать что то новое и интересное.

Подскажите пожалуйста, в какую сторону мне можно "копать" или что изучить.
А вопрос вот в чем:

У меня на сайте планируется очень много статических страниц но с разным содержимым.
Например на одной странице списком только текст, на второй текст и пара картинок, на третьей список ссылок. И все это приправлено разным boostrap'ом.
Всё это можно сделать на страницах шаблонов, но тогда придется создавать очень много страниц blade вручную, а так же роутов. Например /static/page-1 /static/page-x

Можно ли как-то упростить и создать один некий шаблон, роут, чтобы все страницы были как бы статические но и динамические одновременно?

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