我正在laravel中构建页面构建器。前端呈现添加到我的管理员页面中的“块”。我认为确保这些块在我需要的任何地方都可用的最佳方法是将它们加载到View Composer中,效果很好;
View::composer('*', function ($view) {
$blocks = Page::where('url', url()->current());
return view()->with(['blocks', $blocks]);
});
但是,这会尝试加载前端路由和管理路由的块。有什么方法可以确保只为前端的路由加载它们?
我已将路线分成这样的单独文件;
// lets me use an admin.php for my admin routes, instead of web.php
$this->mapAdminRoutes();
protected function mapAdminRoutes()
{
Route::prefix('admin')
->middleware('admin')
->namespace($this->namespace)
->group(base_path('routes/admin.php'));
}
我在谷歌搜索时确实发现了这个问题
但是这仍然会在所有路线上加载服务提供商-只是推迟了View Composer(它可以解决OP性能问题)。