如何在 Laravel 的每个页面上加载我的动态菜单项?
How do i load my dynamic menu item on every page in Laravel?
有没有办法在每个页面上加载我的菜单类别和子类别(从数据库中获取)?我当时做的是
$categories = $this->someService->getAllCategories();
return view('some-view',compact('categories'));
在我从控制器返回的每个视图上。有什么好的方法可以处理这种情况吗?
使用 View Composer,您可以在每次使用数据时将数据传递给视图。
您应该将使用类别的 html 外包到自己的部分中,然后在您的 ServiceProvider 中:
View::composer('some-view-partial', function ($view) {
return $this->someService->getAllCategories();
});
是的,每次页面加载时的数据库调用确实会影响您的页面加载时间。但是视图编辑器是每次获取数据的最佳方法(视图编辑器本身不会影响您的加载时间,它内部发生的事情会影响它)。
如果类别不经常更改,请考虑将类别存储在应用程序缓存中,这样您就不会经常访问数据库。
有没有办法在每个页面上加载我的菜单类别和子类别(从数据库中获取)?我当时做的是
$categories = $this->someService->getAllCategories();
return view('some-view',compact('categories'));
在我从控制器返回的每个视图上。有什么好的方法可以处理这种情况吗?
使用 View Composer,您可以在每次使用数据时将数据传递给视图。
您应该将使用类别的 html 外包到自己的部分中,然后在您的 ServiceProvider 中:
View::composer('some-view-partial', function ($view) {
return $this->someService->getAllCategories();
});
是的,每次页面加载时的数据库调用确实会影响您的页面加载时间。但是视图编辑器是每次获取数据的最佳方法(视图编辑器本身不会影响您的加载时间,它内部发生的事情会影响它)。
如果类别不经常更改,请考虑将类别存储在应用程序缓存中,这样您就不会经常访问数据库。