id プロパティを持つモデルがあります。これは宣言の重要な部分です。
Ext.define('E.model.portfolio.Portfolio', {
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{ name: 'id', type: 'int' },
{ name: 'name', type: 'string' },
{ name: 'currencyId', type: 'int' },
{ name: 'startingCapital', type: 'float' },
{ name: 'startDate', type: 'date' },
{ name: 'endDate', type: 'date' },
{ name: 'isPrivate', type: 'boolean', defaultValue: true },
{ name: 'isPercentageAllocation', type: 'boolean', defaultValue: true },
{ name: 'currentAllocationPeriod', type: 'int', useNull: true },
{ name: 'frequency', type: 'int' },
{ name: 'rebalance', type: 'int' }
],
proxy: {
type: 'ajax',
url: '/someapi/action'
},
validations: [
{ type: 'presence', field: 'id' },
{ type: 'presence', field: 'name' },
{ type: 'presence', field: 'currencyId' },
{ type: 'presence', field: 'startingCapital' },
{ type: 'presence', field: 'startPeriod' },
{ type: 'presence', field: 'endPeriod' }
],
}
ただし、このモデルをサーバーに送信すると、常に id プロパティが欠落しています。送信される JSON は次のとおりです。
{
"name": "Unique Name Test",
"currencyId": 1,
"startingCapital": 1000000,
"startDate": null,
"endDate": null,
"isPrivate": false,
"isPercentageAllocation": true,
"currentAllocationPeriod": 201003,
"frequency": 2,
"rebalance": 0
}
ご覧のとおり、ID を除くすべてのプロパティがあります。ここで何が起こっているのかについて誰か洞察を持っていますか?