Я пытаюсь отправить вложенный объект JSON на свой сервер через прокси-сервер моего магазина. Я использую ExtJS 5.1 и в приведенном ниже коде я использовал атрибут hasMany
, чтобы указать вложенную модель JSON.ExtJS 5.1 не отправляет вложенный объект JSON на мой сервер
Ext.define('MyApp.model.PersonStore',{
extend: 'Ext.data.Store',
model: 'MyApp.model.Person',
storeId: 'PersonStore',
proxy: {
type: 'ajax',
url: 'http://localhost:80/index.php?person=create',
reader: {
type: 'json'
},
writer: {
type: 'json'
}
}
});
Ext.define('MyApp.model.Person',{
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'},
{name: 'age', type: 'int'},
],
hasMany: {
model: 'MyApp.model.Item',
name: 'items',
associationKey: 'items'
}
});
Ext.define('MyApp.model.Item',{
extend: 'Ext.data.Model',
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'itemType',
type: 'string'
}
],
belongsTo: 'MyApp.model.Person'
});
Затем в мой контроллер при создании нового человека, я это сделать:
var store = grid.getStore();
store.add({name: 'Steve', age: '50'});
var lastInsertedPerson = store.last();
var items = lastInsertedPerson.items();
items.add({itemType: 'item1'});
items.add({itemType: 'item2'});
store.sync();
Затем запрос POST отправляется в следующем формате:
{"id":"MyApp.model.Person-1", "name":"Steve", "age":"50"}
, но я ожидаю, что это :
{"id":"MyApp.model.Person-1", "name":"Steve", "age":"50", "items":[{"itemType":"item1"}, {"itemType":"item2"}]}
Так почему разве объект json в запросе POST не содержит вложенный объект Item
?
Вы нашли решение для этого? Благодаря! – perryflynn