1

フロントエンドには extJS を、バックエンドには yii を使用しています。Abodeinstitute、AbodeInstituteContact として 2 つのモデルがあります。AbodeInstituteContact は、Abodeinstitute テーブルの外部キーとして「instituteId」を持つモデルであり、Abodeinstitute テーブルの「instituteName」フィールドを、属している関係でグリッドに表示したいと考えています。どうすればいいですか?

前もって感謝します...

// これはビュー コードです
。instituteNames は、モデルで使用される関連付けの名前です。

   Ext.define('Balaee.view.abode.abodeinstitutecontact.AbodeInstituteContact',{
            extend:'Ext.grid.Panel',

            alias:'widget.abodeContactData',
            autoShow:true,
            store:'abode.abodeinstitutecontactStore',

            initComponent:function()
                {
                    this.columns=[
                                  {header:'ContactId', dataIndex:'contactId', flex:1},
                                  {header:'InstituteName', dataIndex:'instituteName', flex:1,

                                         renderer:function(val,data,record){
                                              var data='';
                                              record.instituteNames().each(function(Record){
                                                  data = data + Record.get('instituteName');
                                              });
                                              return data;
                                          }
                                     },
                                  {header:'InstituteId', dataIndex:'instituteId', flex:1},
                                  {header:'FirstName', dataIndex:'firstName', flex:1},
                                  {header:'MiddleName', dataIndex:'middleName', flex:1},
                                  {header:'LastName', dataIndex:'lastName', flex:1},

                                  {header:'ContactNo', dataIndex:'contactNo', flex:1},
                                  {header:'Email', dataIndex:'email', flex:1},
                                  {header:'DesignationId', dataIndex:'designationId', flex:1}
                             ],
                     this.callParent(arguments);
                }
        });

//モデルコード...

AbodeInstitute モデルには主キー「instituteId」があります。

Ext.define('Balaee.model.abode.abodeinstituteModel',{
      extend: 'Ext.data.Model',
      idProperty:'instituteId',
      fields: ['instituteId','instituteName','instituteCategoryId'],

        associations:[
            {type:'HasMany',    model:'Balaee.model.abode.abodeinstitutecontactModel', foreignKey:'instituteId'}
        ],
});

AbodeInstituteContact 'instituteId' は外部キーです。

    Ext.define('Balaee.model.abode.abodeinstitutecontactModel',{
        extend: 'Ext.data.Model',
        idProperty:'contactId',
        fields: ['contactId','instituteId','firstName','middleName','lastName','contactNo','email','designationId'],
     associations:[
        {type:'BelongsTo',  model:'Balaee.model.abode.abodeinstituteModel',
         name:'instituteNames'}],
     proxy:
        {
            type:'ajax',
            api:
            {
                read:
                create:
                update:
                destroy:
            },//End of api 
            reader:
            {
                type:'json',
                root:'abodeContactData',
                successProperty:true,
            },//End of reader
        }//End of proxy
    });

//json コード

{
        "abodeContactData": [
            {
                "contactId": "4",
                "instituteId": "1",
                "instituteNames": [
                    {
                        "instituteName": "Balaee Pvt.LLP"
                    }
                ],
                "firstName": "Puja",
                "middleName": "Suresh",
                "lastName": "More",
                "contactNo": "32122323",
                "email": "puja@yahoo.com",
                "designationId": "3"
            },
            {
                "contactId": "6",
                "instituteId": "7",
                "instituteNames": [
                    {
                        "instituteName": "Soft"
                    }
                ],
                "firstName": "Riya",
                "middleName": "Ganesh",
                "lastName": "Mahajan",
                "contactNo": "23435",
                "email": "riya@gmail.com",
                "designationId": "2"
            },
            {
                "contactId": "12",
                "instituteId": "8",
                "instituteNames": [
                    {
                        "instituteName": "MST"
                    }
                ],
                "firstName": "Purva",
                "middleName": "Madhav",
                "lastName": "Patil",
                "contactNo": "98653210",
                "email": "purva@gmail.com",
                "designationId": "3"
            }
        ]
    }
4

1 に答える 1