繁体   English   中英

Yii Model Relation的“ on”选项可以联接yii Model Relation中的表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM