javascript - Vue (2.6.11) - 对象道具缺少字段
问题描述
我有一个 Laravel-Vue 应用程序,它具有显示存储在 MySQL 数据库中的“项目”的功能。这些是通过 Eloquent 使用以下查询检索的复杂对象:
return $this->load([
'projectVersions' => function($query) {
$query->with([
'values' => function($valueQuery) {
$valueQuery->with([
'grid' => function($gridQuery) {
$gridQuery->with(['gridCols', 'gridRows.gridCells' => function($cellQuery) {
$cellQuery->with(['gridCol', 'gridRow', 'grid' => function($subGridQuery) {
$subGridQuery->with(['reference', 'lastGridRow', 'lastGridCol']);
}]);
}]);
}
]);
}
]);
}
]);
尽管它看起来很糟糕,但它返回了一个简单的数据层次结构:
$project
-> $projectVersion
-> $values
-> $grids
-> $gridCols, $gridRows
-> $gridCells...
“网格”只是一个表格,其中包含附加到这些行的列、行和单元格。然而,除此之外,单元格还通过 with 子句加载了一些信息:它们的列、它们的行和它们的网格,我们还附加了一些更多信息到后者。这些字段对于在前端处理各种功能中的单元格非常重要,而无需检索其关联的网格/行/列等。
无论如何,查询工作正常,我们最终得到以下数组(显示一个值的 gridCells):
它也像这样在前端收到(通过 Chrome 开发工具检索):
但是,一旦该对象作为道具加载到 Vue 中,我们就会丢失一些信息!
如您所见,我们丢失了 grid 和 grid_col 字段,即使它们存在于响应中。我怀疑它与对象的大小有关——如果我减少查询,字段会再次出现——但我需要它们,而且似乎没有任何迹象表明这是确切的原因。我也无法在网上找到此问题的任何其他实例。那么,为什么 Vue 会破坏我的对象,有没有办法克服这个无法完全重写我的应用程序的问题?谢谢!
编辑:根据要求,这是从 Laravel 将道具加载到 Vue 的刀片模板,以及道具。
@section('content')
<div class="container-fluid">
<project-edit-page
:project='@json($project)'
/>
</div>
@endsection
解决方案
推荐阅读
- c++ - 浮点值 0.0 的表示方式是否与其他浮点值不同?
- python - 如何有效地遍历一个大字符串并记录每个 3 字母子字符串的索引?
- ios - 'WebDriverAgent.xcodeproj' 不存在,xcodebuild 失败,代码为 65
- r - 如何使用geom_col在同一个ggplot中并排绘制两个变量?
- javascript - 当用户选择不使用默认协议处理程序打开应用程序时,后台页面是否有任何事件或通知?
- python - 从 Django 中的 API 填充数据库
- r - 从 xtabs 数据框在 R 中创建面积图
- python - 子集数据集时的Python语法错误?
- prometheus - 使用录制规则时的 Prometheus 过滤
- python - 日期问题 - 字符串索引必须是整数