将整个参数从 blade 传递给 Vue 组件会导致 30 个额外的数据库查询

Passing whole parameter to Vue component from blade is resulting in 30 additional database queries

我有一个 Vue 组件,我正在从我的 blade 文件向其传递一些数据,如下所示:

<my-widget :data-aircraft="{{ $aircraft }}"></my-widget>

当我将整个 $aircraft object 传递给 Vue 组件时,我的应用程序进行了额外的 30 次数据库查询。如果我通过 $aircraft->id,那些额外的 30 个查询就会消失。本例中vue组件为空,方便调试。

当我尝试将整个 $aircraft object 作为道具发送时,我是否遗漏了 Laravel/Vue 在后台执行的操作?是不是只有 lazy-loading 我的 appends 属性才出现在我的 Aircraft 模型上?

您是"echoing"对象,这意味着Laravel将加载所有模型属性和关系。如果您在 blade 中使用变量,关系将仅在请求时加载。