Я использую / изучаю 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
Теперь моя проблема со всеми остальными контроллерами, которые я должен получать информацию о странице из базы данных каждый раз, что кажется неэффективным.
Любой совет будет оценен. Заранее спасибо.