Я хочу передать дополнительные данные фильтра в мою службу REST PHP, а именно набор значений из формы. Форма представляет собой набор флажков с тем же name: 'relations'
.Прокси-сервер ExtJS неправильно строит запрос GET с массивом в extraParams
Чтобы сделать это, я следующее:
var relationTypes = [],
objectsTreeStore = Ext.getCmp('objectsTreeGrid').getStore();
if('relations' in this.getFilterForm().getValues()) {
relationTypes = typeof this.getFilterForm().getValues().relations ==='string' ? [this.getFilterForm().getValues().relations] : this.getFilterForm().getValues().relations;
}
objectsTreeStore.getProxy().extraParams.relations = relationTypes;
objectsTreeStore.load();
В качестве примера, значение переменной relationTypes
согласно console.log
является ["100_200", "110_200"]
.
Но URL-адрес запроса GET: http://10.161.28.111:81/objectstree/get?branch_id=2&relations=100_200&relations=110_200&node=root
.
PHP interprent эти данные, как
Array
(
[branch_id] => 2
[relations] => 110_200
[node] => root
)
Я думаю, что URL должен быть как http://10.161.28.111:81/objectstree/get?branch_id=2&relations[]=100_200&relations[]=110_200&node=root
.
Как я могу решить эту проблему?
Я использую 'checkboxGroups' в моей форме. 'name: 'relations []' 'работал, но мне кажется, что это очень сложное решение, более того, я не понимаю, как я могу получить доступ к этому значению, если это необходимо. Например, 'this.getFilterForm(). GetValues (). Relations []' wont work. –
Да, это уродливо. В любом случае функция getValues возвращает массив, поэтому вы можете получить такие значения, как this.getFilterForm(). GetValues () ['relations []'] ' –