Как настроить методы CRUD на прокси-сервере / модели / магазине Sencha Touch 2? - PullRequest
1 голос
/ 04 марта 2012

Я работаю с партнером над созданием приложения базы данных Sencha Touch 2. Он создал для меня кучу методов на бэкенде с таким синтаксисом:

  • index.php? Г = показать / обновление
  • index.php? Г = показать / добавить
  • index.php? Г = показать / удалить
  • index.php? Г = человек / добавить

Каждый из которых ожидает, что POST будет отправлен вместе с ним.

С чем я борюсь, так это как должны выглядеть прокси - например, есть ли способ указать прокси show, который сопоставляет / update / add и / delete с их связанными действиями U / C / D? В прокси есть только один URL, и это для действия get (в данном случае getByUser)

Я предполагаю, что я хочу как-то поместить другие действия в прокси - или мне просто нужно несколько разных прокси для каждого действия (это кажется излишним ...)

Документы Sencha подразумевают, что действия CRUD встроены в прокси, но я не вижу, где и как определяются их URL-адреса ...

Ext.define('SMToolkit.store.Shows', {
extend: 'Ext.data.Store',

config: {
    model: 'SMToolkit.model.Show',
    autoLoad: true,
    sorters: 'name',
    grouper: {
        groupFn: function(record) {
            return record.get('type');
        }
    },
    proxy: {
        type: 'ajax',
        url : 'index.php?r=show/getByUser&username=FOO'
    }
}
});

С моделью, которая выглядит следующим образом:

Ext.define('SMToolkit.model.Show', {
extend: 'Ext.data.Model',

config: {
    fields: [
        'id',
        'name',
        'opening',
        'closing',
        'rehearsal',
        'type',
        'availability'
    ]
}
});

1 Ответ

1 голос
/ 17 апреля 2012

Если у вас должен быть определенный URL для каждой операции, ST2 предоставляет вам свойство API. Вы должны изменить свой прокси на:

proxy: {
   type: 'ajax',
   api: {
     create : 'index.php?r=show/add',
     read   : 'index.php?r=show/read',
     update : 'index.php?r=show/update',
     destroy: 'index.php?r=show/delete'
   }
}

Обратите внимание, что я удалил свойство url и добавил свойство api. Кроме того, чтобы удалить, вы должны ввести слово «уничтожить», потому что в Javascript слово «удалить» является зарезервированным словом.

...