Я хотел бы представить некоторые данные, извлеченные из php-скрипта, в списке в приложении sencha touch MVC.У меня есть модель клиента и модель бронирования.Ассоциация проста: у клиентов может быть много заказов, бронирование принадлежит клиенту.Я создал несколько моделей
App.models.ClientModel = Ext.regModel('ClientModel', {
idProperty: 'clientID',
fields: [
'clientID',
'firstName',
'lastName',
'email',
'phone1',
'extension1',
'phone2',
'extension2',
'workPh',
'workExt',
'address1',
'address2',
'city',
'province',
'country',
'reminderType',
'postal',
'noteID',
'referredBy',
'quickLogin',
'creationDate',
'modifiedDate',
'birthDate'
],
proxy: {
type: 'rest',
url : 'includes/data_api',
appendId: true,
extraParams: {
model: 'Client'
},
format: 'php',
reader: {
type: 'json',
root: 'items'
}
},
associations: [
{type: 'hasMany', model: 'BookingModel', primaryKey: 'bookingId', foreignKey: 'clientID', name: 'bookings'}
]});
App.models.BookingModel = Ext.regModel('BookingModel', {
idProperty: 'bookingID',
fields: [
'bookingID',
'clientID',
'stylistID',
'salonID',
'serviceID',
'startDate',
'splitStartDate',
'splitEndDate',
'endDate',
'status',
'clientNotes',
'stylistNotes',
'reminderSent',
'charge',
'offset'
],
proxy: {
type: 'rest',
url : 'includes/data_api',
format: 'php',
appendId: true,
extraParams: {
model: 'Booking'
},
reader: {
type: 'json',
root: 'items'
}
},
associations: [
{type: 'belongsTo', model: 'ClientModel', primaryKey: 'clientID', foreignKey: 'clientID', getterName: 'getClient', name: 'client'}
]});
После нескольких боев я установил ассоциацию hasMany, работающую с кодом sampe, вставленным в контроллер:
var client = App.stores.ClientStore.getAt(1);
var bookings = client.bookings();
bookings.clearFilter();
bookings.filter('clientID', client.get('clientID'));
bookings.load();
Я не могу заставить работать ассоциацию ownTo.Если я попробую приведенный ниже код, я увижу запрос к php-скрипту, но без каких-либо дополнительных параметров, поэтому он возвращает полный список клиентов, а console.log всегда возвращает первый
booking.getClient({
success: function(client, operation) {
console.log(client);
}
});
Итак,Первый вопрос: как я могу заставить это работать?И второй вопрос: как мне заставить это работать со списками?Из того, что я знаю, я перешел только Store в объект конфигурации списка.Так что, если мне нужно сделать несколько дополнительных запросов только для получения связанных данных, как я могу сделать это в списках?И как я могу ссылаться на связанные данные в xtemplate для каждого элемента списка?