我有以下两个表:
表公司包含以下列:
id
name
cif
location
表工作者包含以下列:
id
idCompany
name
code
关系是一家公司有很多工人
在extjs 4.2中,我有两个模型:
mdlCompany
Ext.define('App.model.mdlCompany', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'integer'},
{name: 'name', type: 'string'},
{name: 'cif', type: 'string'},
{name: 'location', type: 'string'}
]
});
mdlWorker
Ext.define('App.model.mdlWorker', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'integer'},
{name: 'name', type: 'string'},
{name: 'code', type: 'string'}
]
});
如何设置模型之间的关系?我正在尝试在 mdlCompany 中设置此行:
hasMany: {model: 'App.model.mdlWorker', foreignKey: 'idCompany'}
在 mdlWorker 中:
{name: 'idCompany', type: 'int'}
如果这部分正确,那就没问题。
获取数据的php返回为:
0:{
id: 1
name: "John",
code: "J001",
company:{
id:1
name: "Company 1",
location: "Some place"}
}
1:{
id: 2
name: "Paul",
code: "P001",
company:{
id:2
name: "Company 2",
location: "Some other place"}
}
...
我有这个网格:
Ext.apply(this, {
store: 'somestore with mdlWorker assigned',
stripeRows: true,
loadMask: true,
columns: [
{ text: 'Id', dataIndex: 'id', flex: 1 },
{ text: 'Name', dataIndex: 'name', flex: 1 },
{ text: 'Code', dataIndex: 'code', flex: 1 },
{ text: 'Company', dataIndex: 'company.name', flex: 1 }
],
});
但是在渲染网格并加载其存储时,公司列为空。我是否需要更多配置?或如何访问 mdlWorker 的company.name属性?