ExtJS 7 - JsonStore.sync() 不调用相应的 PHP 脚本

问题描述 投票:0回答:1

我有一个 Web 应用程序,我手动将其从 ExtJS 4 移植到 ExtJS 7。在大多数情况下,读取查询都可以工作。

但是,经过进一步测试,创建和更新查询根本不起作用。

例如,有各种对话框/浮动面板,我可以在其中使用表单创建和编辑某些模型,并在用户按下“保存”按钮后。在 ExtJS4 中,我可以简单地执行以下操作:

创建新模型:

var model = Ext.create('AppName.model.Model_Name', {});
var store = Ext.getStore('Store_Name');
var form = button.up('form');

form.updateRecord(model);

store.add(model);
store.sync({
    // code for callback
});

为了更新模型,我做了类似的事情:

var form = button.up('form');
var model = form.getRecord();
var store = Ext.getStore('Store_Name');

form.updateRecord(model);
form.set('field_1', value_1);
form.set('field_2', value_2);

store.sync({
    // code for callback
});

然后我就不会有任何麻烦了,存储/代理通常会按照指定执行创建或更新查询。

以下是商店的示例:

Ext.define('App.store.store_name', {
    extend: 'Ext.data.Store',

    requires: [
        'App.model.model_name',
        'Ext.data.proxy.Ajax',
        'Ext.data.reader.Json',
        'Ext.data.writer.Json'
    ],

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            storeId: 'store_id',
            batchUpdateMode: 'complete',
            model: 'App.model.model_name',
            proxy: {
                type: 'ajax',
                batchActions: false,
                api: {
                    create: 'folder/folder/createQuery.php',
                    read: 'folder/folder/readQuery.php',
                    update: 'folder/folder/updateQuery.php',
                    destroy: 'folder/folder/deleteQuery.php'
                },
                url: '',
                reader: {
                    type: 'json',
                    keepRawData: true,
                    messageProperty: 'message',
                    rootProperty: 'data'
                },
                writer: {
                    type: 'json',
                    writeAllFields: true,
                    encode: true,
                    rootProperty: 'data'
                }
            }
        }, cfg)]);
    }
});

但是,在 ExtJS 7 中,似乎不再这样工作了。我在创建和更新 PHP 代码中放置了 echo 行,只是为了查看 PHP 代码是否被执行。这通常也可以帮助我调试 PHP 代码。但是在这种情况下,没有显示任何 echo 语句。

我需要在商店或代理中实现任何参数吗?

php extjs extjs7
1个回答
0
投票

问题出在 PHP 文件上,存在与日期格式相关的错误,一旦解决该错误,查询就会通过。

我随机尝试的另一家商店也存在不同的问题。

一般来说,查询仍然会被调用并执行,但 echo 语句不再显示在开发人员控制台日志中,但它仍然显示在“网络”选项卡下,您可以选择 php 脚本并在那里查看输出.

© www.soinside.com 2019 - 2024. All rights reserved.