具有从缓存中检索的多个数据集合,需要将其传递到几个不同的视图。 为了优化性能,只需要检索一次即可,无需额外的缓存请求。
因此不能使用ViewComposer -它会为每个列出的视图触发缓存请求。
在AppServiceProvider中使用以下解决方案:
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
view()->share('somedata',Cache::get('somekey'));
}
但是在这种情况下,数据传递到了所有视图,从内存消耗的角度来看,这是不好的。 需要仅将数据传递到某些视图的能力。 (不是页面,因为几乎每个页面都使用这些视图) 如下所示: view(['viewname1','viewname2'])-> share('somedata',Cache :: get('somekey'));