웹에서 모든 것을 둘러 보았습니다. 그러나 Est Js 4 모델에서 many to many 연관을 구현하는 방법을 찾지 못하는 것 같습니다. 프로토 타입 예제를 가져옵니다. "게시물"과 "태그"가있는 응용 프로그램이 있습니다. Ext Js 4 모델에서이를 어떻게 표현하고 태그로 게시물과 게시물별로 태그를 필터링합니까?Ext Js 4에서 ManyToMany 연관 구현
2
A
답변
4
ManyToMany는 A와 B 사이에 링크가 포함 된 추가 테이블 (또는 배열)이 있음을 의미합니다. 따라서이 방법을 구현하는 유일한 방법은 추가 저장소를 사용하는 것입니다. 많은 항목이 각각 여러 범주에 속할 수 있습니다 경우
, 여기에 모델 정의입니다 : 다음Item.categories().load({
scope: this,
callback: function(aRecords, aOperation, aSuccess) {
Ext.each(aRecords, function(aAssociation) {
// Do something here
}, this);
}
});
: 다음
Ext.define('BS.model.Item', {
extend: 'Ext.data.Model',
fields: [
{name: 'name' , type: 'string'},
],
proxy: {
type: 'direct',
api: {
create: Items.Create,
read: Items.GetTree,
update: Items.Update,
destroy: Items.Delete,
},
},
hasMany: {model: 'BS.model.ItemInCategory', name: 'categories', foreignKey: 'itemId'},
});
Ext.define('BS.model.ItemCategory', {
extend: 'Ext.data.Model',
fields: [
{name: 'name' , type: 'string'},
],
proxy: {
type: 'direct',
api: {
create: ItemCategories.Create,
read: ItemCategories.Read,
update: ItemCategories.Update,
destroy: ItemCategories.Delete,
},
},
});
Ext.define('BS.model.ItemInCategory', {
extend: 'Ext.data.Model',
fields: ['itemId', 'categoryId'],
// This will allow create operations with multiple records
clientIdProperty: 'clientId',
proxy: {
type: 'direct',
api: {
create: ItemInCategory.Create,
read: ItemInCategory.Read,
destroy: ItemInCategory.Destroy,
},
reader: {
type: 'json',
root: 'data',
},
},
});
이 항목에 속한 모든 범주를 얻을 수 연결을 추가하는 방법 :
var iNewRecord = Item.categories().model.create({ categoryId: '16' });
Item.categories().add(iNewRecord);
+0
이것은 아주 좋은 해결책입니다. 나는 친숙한 대답을 줄 것이다. – acteon
1
검색하는 동안이 질문을하는 사람들을 위해 ExtJS 5.0, 그들은 기본적으로 다 대다 관계를 지원 : ExtJS로 6
http://docs.sencha.com/extjs/5.0.0/apidocs/#!/api/Ext.data.schema.ManyToMany
0
는 ManyToMany 너무 구현됩니다.
최소 구현 :
Ext.define('App.models.Group', {
extend: 'Ext.data.Model',
manyToMany: [
'User'
]
});
나는 정말 당신이 그들의 연관 구성 요소로 그렇게하려고 시도하지 않는다고 제안한다. 많은 사람들은 당신이 상점 간 관계를 저장할 추가 데이터를 가지고 있다고 제안한다. 나는 당신이 2 점포를 서로 연관 짓는 자신의 가게 posts2tags를 만들고 자신을 필터로 처리 할 것을 제안한다. 지금까지 연관 구성 요소를 사용했다면 아마 각 레코드 내에 상점이 생성 된 것을 보았을 것입니다. 연결 구성 요소를 사용하면 중복 데이터로 연결됩니다. – nscrob