【发布时间】:2020-03-17 06:04:00
【问题描述】:
我正在使用compact 函数从我的控制器将一个变量传递给我的视图,然后可以在我的视图中访问该变量。但是,每次我访问这个变量时,Laravel 都会对数据库进行越来越多的调用。
return view('dashboard.overview', compact('aircraft', 'current_location', 'current_flight'));
然后在我的 Blade 中,我像这样调用 Vue 组件:<badge--aircraft--financed :data-aircraft="{{ $aircraft }}"></badge--aircraft--financed>,这会产生 10 个查询。如果我复制这一行,Debugbar 显示我做了 20 个查询,其中 10 个是重复的。 Blade是否默认不缓存$aircraft变量?
【问题讨论】:
-
aircraft到底有什么? -
您是否使用 Aircraft 模型的
$appends属性附加数据?或有任何访问者? -
是的,我有很多使用
$appends定义的访问器,但我正在尝试找到一种方法来选择性地加载这些here。是这个问题吗? -
如果他们正在触及未加载的关系的关系方法或动态属性,是的......如果是这种情况,他们会在每次使用访问器时引发查询......你就是字面意思在访问器中进行查询
-
嗯,好的。除了将它们添加到
appends数组之外,有没有办法在需要时预加载访问器?
标签: php laravel vue.js laravel-blade