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

标签 php mysql yii model yii-relations

我有一个表“MEDICATION”,它与“GENERICS_MED_TRADENAMES”表相连。 “GENERICS_MED_TRADENAMES”表包含 LIST_OF_VALUES 表中引用的药物形式。从 DataProvider 获取 MEDICATION 的结果集以显示在 ListView 中后,我想访问存储在 LIST_OF_VALUES 表中但使用 Yii 模型关系的 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" 

最佳答案

放在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'
    )
));

关于php - Yii:从模型的嵌套连接表访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21501919/

相关文章:

php - 类型错误 : "Cannot convert string to ByteString because the character at index 519 has value 8230 which is greater than 255."

php - 是否可以在 PowerMTA 上阅读收到的电子邮件?

python - 使用Python备份MySQL数据库

php - yii2如何在一个模型中使用多个表

php - Yii2 数据库 session - 存储附加属性和用户信息

php - 如何以二进制形式获取 BIT(...) 数据类型列的值?

php - 读取fgetcsv时如何删除存储在数据库中的双引号

php - 检查 MySQL 数据库是否有重复条目

php - json_encode 不会转义换行符

php - 由于 Yii 中的负载均衡器, Assets URL 不工作