Динамические страницы Laravel 5.6 из лучших практик базы данных

Я использую / изучаю Laravel 5.6 и задавался вопросом, лучший ли это подход для создания динамических страниц из базы данных.

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

У меня есть маршрут в web.php

Route::get('/', 'PageController@index')->name('index');
Route::get('/{page}', 'PageController@show');

Затем у меня есть контроллер страницы с функциями index и show.

 public function index()
{
    $pages = Page::all();
    $posts = Post::latest('created_at')->paginate(2);
    return view('index', compact('posts','pages'));
}

public function show($uri)
{
    $pages = Page::all();
    $page = Page::where('uri', $uri)->first();
    return view('templates.page', compact('page','pages'));
}

Теперь в моем header.blade.php я показываю список таких страниц:

@foreach($pages as $page)
     <li class = "nav-item">
          <a class = "nav-link" href = "/{{ $page->uri }}">{{ $page->title }}</a>
     </li>
@endforeach

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

Любой совет будет принят во внимание. Заранее спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
1 107
2

Ответы 2

Вы можете автоматически делиться данными своих страниц с каждым просмотром с помощью добавление View::share('key', 'value'); в метод загрузки поставщика услуг. В качестве альтернативы вы можете создать смотреть композитора.

один макет отвала. уступить титул по

<title>@yield('page-title')</title>

затем на просмотр,

// обрабатываем заголовок с использованием php из БД

затем отобразите с помощью

@section('page-title')
{{$page_title}}
@endsection

Другие вопросы по теме