Yii:从模型的嵌套连接表中访问属性

时间:2014-02-01 18:34:52

标签: php mysql yii model yii-relations

我有一个表“MEDICATION”,它与“GENERICS_MED_TRADENAMES”表相连。 “GENERICS_MED_TRADENAMES”表包含药物形式的药物,在LIST_OF_VALUES表中引用。从DataProvider获取MEDICATION的结果集到ListView中显示后,我想访问存储在LIST_OF_VALUES表中但使用Yii Model关系的DRUG_FORM描述。我试过跟随,但它不起作用:

'genMedStrnDrgform' => array(self::BELONGS_TO, 'GenericsMedTradenames', 'gen_med_strn_drgform_id'), -- This is okay, I can access the attributes 
'drugForm' => array(self::BELONGS_TO, 'ListOfValues', 'genMedStrnDrgform.drug_form_id'), -- This does not work since it is nested. Yii thorws error.

为了进一步解释我想要的内容,我还以SQL查询的形式解释了相同的内容(放置快照,因为缩进很难以正确的方式呈现我的问题):

enter image description here

Pentim10回复后编辑:

我需要显示DrugFrom描述并在ListView文件中尝试以下操作但两个都不起作用: drugForm-> group_display_val

"$data->genMedStrnDrgform->drugForm->group_display_val"
 "$data->drugForm->group_display_val" 

1 个答案:

答案 0 :(得分:1)

放在Medication

'genMedStrnDrgform' => array(self::BELONGS_TO, 'GenericsMedTradenames', 'gen_med_strn_drgform_id')

放入GenericsMedTradenames

'drugForm' => array(self::BELONGS_TO, 'ListOfValues', 'drug_form_id')

然后执行以下查询:

$posts=Medication::model()->findAll(array(
    'with'=>array(
        'genMedStrnDrgform',
        'genMedStrnDrgform.drugForm'
    )
));