美好的一天。我最近遇到了一个令人不安的错误,我不知道它来自何处或是如何产生的。
我有一个表单,我希望在按下按钮时将数据保存到数据库,由控制器处理。这就是我在控制器中所做的事情:
var personStore = Ext.getStore('personBaseDetails');
var caStore = Ext.getStore('creditApplication');
var form = button.up('form').getForm();
var userId = personStore.first().get('ID');
//use this to update
if(caStore.count() < 1){
var creditApplication = Ext.ModelManager.create({
}, 'appName.model.creditApplicationModel');
caStore.add(creditApplication);
}
var record = caStore.first();
form.updateRecord(record);
console.log("user id to be edited is = " + userId);
console.log("caStore count = " + caStore.getCount());
caStore.getProxy().extraParams = {
selectedUserID: userId
};
// caStore.load();
caStore.sync({
success: function(batch) {
console.log(batch.operations[0].request.scope.reader.jsonData['message']);
},
failure: function(batch) {
console.log(batch.operations[0].request.scope.reader.jsonData['message']);
}
});
在这里,我设置了商店额外的参数,以便在php代码查询中使用它。但是,我遇到的问题是,当我在PHP代码中获得selectedUserID
时,我似乎无法获得额外的参数。如果我注释掉if(isset($_GET['selectedUserID'])){ .... }
,则查询有效(尽管这些值现在是硬编码的)。
以下是我的商店的样子:
Ext.define('app.store.creditApplication', {
extend: 'Ext.data.Store',
requires: [
'app.model.creditApplicationModel',
'Ext.data.proxy.Ajax',
'Ext.data.reader.Json',
'Ext.data.writer.Json'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: false,
model: 'app.model.creditApplicationModel',
storeId: 'creditApplication',
clearOnPageLoad: false,
proxy: {
type: 'ajax',
api: {
create: 'data/person/creditApplication/createCreditApplication.php',
read: 'data/person/creditApplication/readCreditApplication.php',
update: 'data/person/creditApplication/updateCreditApplication.php'
},
url: '',
reader: {
type: 'json',
root: 'data'
},
writer: {
type: 'json',
encode: true,
root: 'data'
}
}
}, cfg)]);
}
});
现在我傻眼了,因为我有另外一个代码,就像我在控制器中设置extraParam并且php代码能够接收和读取它一样。请注意,我的两个商店都没有extraParam
属性。
我一直坚持这个问题而且我不知道如何解决这个问题。任何帮助将不胜感激。