Laravel 5.6 динамических страниц из базы данных лучших практик - PullRequest
0 голосов
/ 06 мая 2018

Я использую / изучаю 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

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

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

1 Ответ

0 голосов
/ 06 мая 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...