【发布时间】:2019-09-30 06:56:00
【问题描述】:
我正在创建一个在 Vuetify 数据表中显示一些信息的服务。 问题是当我从使用 json_encode 的服务器获得答案时。其中一个值有时是单个值,它将被转换为对象而不是数组。据我所知,使用 vuetify 需要它是一个数组才能正确显示。
我已经尝试明确告诉对象它是一个数组。
[
{
"values": "something",
"Items": {
"item" : [{ "Iteminfo": "Item1" },
{ "Iteminfo": "Item2"}
]
}
}
]
///////// result with single Object
[
{
"values": "something",
"Items": {
"item" : { "Iteminfo": "Item1"}
}
}
]
//// Vuetify
<v-data-table
:headers="headers"
:items="orders"
:expand="expand"
:dark="false"
item-key="Name"
>
<template v-slot:items="props">
<tr @click="props.expanded = !props.expanded">
<td>Order: {{ props.item.Ordernumber }} , Klantnaam: {{
props.item.Name }}
</td>
</tr>
</template>
<template v-slot:expand="props">
<v-card flat>
<v-card-text>
<table>
<tr>
<th>Artikelnummer</th>
</tr>
<tr v-for="item in props.item.Items.item">
<td>{{ item.Article }}</td>
</tr>
</table>
</v-card-text>
</v-card>
</template>
</v-data-table>
///For getting the information
<script>
export default{
data () {
return {
filiaalnummer: '',
expand: false,
headers: [
{
text: 'Orders',
align: 'left',
sortable: false,
value: 'name'
},
],
orders: [],
}
},
methods: {
getOrders : function(){
console.log(this.filiaalnummer);
axios.get('/orders/getOrders/'+this.filiaalnummer)
.then(response => this.orders =response.data)
.catch(error => console.log(error.response.data));
},
}
}
</script>
Laravel Server Side
return json_encode($arrayOfObjectsContainingTheItems);
要获取对象内部的项目,我需要将它们放在数组中。并且当呈现单个对象时,它也会编码为一个对象,这导致 Vuetify 尝试将该对象的所有单个属性读取为 Items。 我可以明确告诉 PHP 它需要是一个数组吗?或者我可以在 Vuetify 中做一些事情来读取对象吗?
【问题讨论】:
-
你在哪里跑
json_encode可以分享代码吗? -
我更新了 The Post 以包含编码和请求
-
我已经尝试明确告诉对象它是一个数组。,在哪里?
-
PHP 对象内的服务器端 ``` $this->item = array($ItemsWhichSometimesCanBeASingleObject); ``` 不确定是否是一个好的输入方式,似乎 json_encode 仍然将其视为对象
标签: php json laravel datatable vuetify.js