如何使用Sencha Touch 2框架的代理使用多种CRUD方法?

时间:2013-05-28 16:13:55

标签: extjs sencha-touch sencha-touch-2 crud sencha-touch-2.1

我使用Sencha Touch 2框架编写了一个小型移动应用程序。目前,我在localhost中管理数据库中的一些文章。我使用ArticleService.php文件中包含的PHP CRUD方法编写了数据库管理。我的'阅读'功能取回了所有文章。但我希望有一个其他的“读取”方法来读取根据其id或最后5篇文章等特定文章的例子。但是商店代理(我认为是这样)允许每个主要操作1个方法。所以在我的情况下,对于'读'操作,我只有一个'读'方法。

这是我的'商店'源代码:

Ext.define("MyApp.store.ArticleStore", {
    extend: "Ext.data.Store",
    requires: ["MyApp.model.ArticleModel"],
    config: {
    model: "MyApp.model.ArticleModel",
    proxy: {
        type: "ajax",
        api: {
            create: "http://localhost/MobileApplication/MyApp/services/ArticleService.php?action=create",
            read: "http://localhost/MobileApplication/MyApp/services/ArticleService.php?action=read",
            update: "http://localhost/MobileApplication/MyApp/services/ArticleService.php?action=update",
            destroy: "http://localhost/MobileApplication/MyApp/services/ArticleService.php?action=destroy"
        },
         extraParams: {
            keyword: ""
        },
        reader: {
            type: "json",
            rootProperty: "articles",
            totalProperty: "total"
        }
    },
        autoLoad: true
    }
});

是否有可能为每个主要CRUD操作提供多种方法(例如3种不同的“读取”方法来管理我的文章显示)?我真的迷路了。 在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您不需要不同的阅读方法。加载商店后,它将存储在内存中,您将能够找到所需的任何记录。

如果您的存储空间太大而无法立即加载 - 请查看remoteFilter属性:http://docs.sencha.com/touch/2.1.1/#!/api/Ext.data.Store-cfg-remoteFilter这样过滤您将设置的内容(如id = 1或parent_id = 2)将传递给服务器,以便它可以返回正确的记录集。