Как получить связанные данные из модели?
Здравствуйте.
У меня есть две модели, отношение "один ко многим". Насколько я припоминаю, есть возможность сгенерировать в родительской модели метод для получения связанных данных. Но вот как? Вот что я написал: Ext.define("PM.model.entity.Process", { extend: "Ext.data.Model", idProperty: "ID", fields: [ "Name" ], proxy: { type: "ajax", pageParam: "", limitParam: "", startParam: "", reader: { type: "json", rootProperty: "data", messageProperty: "msg" }, writer: { type: "json" }, api: { create: "/json?cmd=pm.process.create", read: "/json?cmd=pm.process.read", update: "/json?cmd=pm.process.update", destroy: "/json?cmd=pm.process.destroy" } } }); Ext.define("PM.model.entity.SubjectField", { extend: "Ext.data.Model", idProperty: "ID", fields: [ { name: "PMProcess_ID", type: "int", reference: { parent: "entity.Process", association: "FieldsByProcess", role: "process", inverse: "subjectFields" } }, { name: "Name", type: "string" } ], proxy: { type: "ajax", reader: { type: "json", rootProperty: "data", messageProperty: "msg" }, writer: { type: "json" }, api: { create: "/json?cmd=pm.subjectfield.create", read: "/json?cmd=pm.subjectfield.read", update: "/json?cmd=pm.subjectfield.update", destroy: "/json?cmd=pm.subjectfield.destroy" } } }); Много SubjectField может принадлежать одному Process. У меня есть грид со списком процессов. В обработчике клика я получаю выбранную модель и хотел бы получить связанные филды с помощью автоматически сгенерированного метода. В теории, это должен был бы быть метод subjectFields(), но вот я получаю ошибку что такого метода нет. Что не так? Я где то напорол в определении связи? |
Разобрался. Надо было в Process добавить ассоциацию:
hasMany: { foreignKey: "PMProcess_ID", associationKey: "subjectFields", name: "subjectFields", model: "PM.model.entity.SubjectField" }, и имя подчиненной модели полностью написать. В ней же ничего писать не надо. |
Часовой пояс GMT +3, время: 14:31. |