[英]Yii Model Relation 'on' option to join the tables in yii Model relation
Yii模型关联发生了什么事! 我有2个型号:
`Question and Video`,
我在存钱
`question_id` in `Video model as foreign key`,
现在,我想在Question model
建立一个像这样的关系:
'video'=>array(self::HAS_MANY, 'Video', '', 'on'=>'video.question_id=id'),
然后在clistview中,我显示:
if (!empty($data->video))
echo CHtml::encode($data->video->video_title);
但是那里什么也没发生,我的代码有什么问题?
您的关系设置不正确:
'video'=>array(self::HAS_MANY, 'Video', 'question_id'),
//this compares Video->question_id to Question->primary_key
您无需指定on
,它使用第三个条件question_id
并将其与Question模型的主键进行比较,因为您正在指定HAS_MANY
。 如果您具有BELONGS_TO
关系,则第三个条件将引用该模型中的属性,并将其与另一个模型中的外键进行比较。 因此,如果您在Video
模型上设置了相反的关系,则可能是:
'question'=>array(self::BELONGS_TO,'Question','question_id'),
//this compares Video->question_id to Question->primary_key
你目前也有
echo CHtml::encode($data->video->video_title);
由于您指定的是HAS_MANY
$data->video
将是Video实例的数组。 因此,您有两个选择,只需使用数组data->video[0]->video_title
的第一个元素,或将HAS_MANY
转换为HAS_ONE
则它只会建立一个连接,而不会寻找多个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.