Extjs hasOne关联未正确加载

时间:2013-09-25 06:50:40

标签: extjs extjs4 extjs4.1

我有一个Person模型,其中Address通过'hasOne'与之关联。两种模型都通过REST代理加载数据。如果我加载一个人并尝试获取地址,我可以看到地址网址的http请求但没有任何类型的人员ID,因此我的服务器发送错误。

人:

Ext.define('AP.model.Person', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int', persist : false },
        { name: 'name', type: 'string' }
    ],
    proxy: {
        type: 'rest',
        url : AP_ROOT_URL + 'persons/'
    },
    associations: [{
        type: 'hasOne', 
        model: 'AP.model.Addresses', 
        foreignKey: 'person_id',
        primaryKey: 'id',
        getterName: "getAddress"
    }]
});

地址:

Ext.define('AP.model.Address', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'person_id', type: 'int', persist : false },
        { name: 'address', type: 'string' }
    ],
    proxy: {
        type: 'rest',
        url : AP_ROOT_URL + 'addresses/'
    }
});

以下代码:

person.getAddress(function(address){
    console.log(address);
});

创建一个请求: http://localhost/addresses

什么时候应该创建一个请求: http://localhost/addresses/person_id (http://localhost/addresses/1)

1 个答案:

答案 0 :(得分:0)

这里有一个HasMany关系,而不是HasOne。你不会让HasOne使用这些模型,因为正如文档中所述:“所有者模型应该有一个引用相关模型主键的外键”。在您的情况下,外键位于关联模型中(这使其成为1-n关系)。