我正在使用/学习Laravel 5.6,想知道这是否是尝试从数据库中完成动态页面的最佳方法。
我采取的方法有效,但我觉得可以改进,特别是必须为每个请求检索导航栏的页面。
我在网络上有一条路线.php
Route::get('/', 'PageController@index')->name('index');
Route::get('/{page}', 'PageController@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
现在我的问题是所有其他控制器,我每次都必须从数据库中获取页面信息,这似乎效率低下。
任何建议将不胜感激。提前谢谢你。
通过在服务提供商的引导方法中添加View::share('key', 'value');
,您可以自动与每个视图共享页面数据。或者,您可以创建视图编辑器。
一个布局边栏选项卡。 产量标题由
<title>@yield('page-title')</title>
然后看到,
使用 DB 中的 php 的进程标题
然后使用
@section('page-title')
{{$page_title}}
@endsection