Extjs 4.2具有很多关系

时间:2018-12-19 12:03:33

标签: javascript php extjs4

我有以下两个表:

公司包含以下列:

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属性?

0 个答案:

没有答案