为了账号安全,请及时绑定邮箱和手机立即绑定

仅针对某些路线的服务提供商-Laravel

仅针对某些路线的服务提供商-Laravel

PHP
泛舟湖上清波郎朗 2021-05-03 12:16:52
我在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'));}我在谷歌搜索时确实发现了这个问题在特定路由上绑定Laravel服务提供商但这仍然会在所有路线上加载服务提供商-只是推迟了View Composer(适用于OP的性能问题)。
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

一个中间件是更好地为这种类型的东西,你可以把它应用到任何你想要的路线途径/组。


查看完整回答
反对 回复 2021-05-07
  • 1 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信