1

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);

但那里什么也没发生,我的代码有什么问题?

4

1 回答 1

2

您的关系设置不正确:

'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_MANYHAS_ONE然后它只会建立一个连接而不寻找倍数。

于 2013-09-18T20:53:38.480 回答