0

我已经在这里搜索了答案,但我没有找到一个特定于我的问题的答案。

我相信我错误地设置了模型之间的关系...我有一个使用模型的 CGridView,其中一个字段是外部 id,我想使用该外部 id 来获取模型中的不同字段。(例如问题模型包含外键'tag1',我想使用'tag1'在表标签中找到它的'name'字段)。

看法

    <?php
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$questions->search(),
    'filter' => $questions,
    'columns' => array(
        array('class'=>'CCheckBoxColumn'),
        'text',
        'tag1',
        array('header' => 'Tag 1', 'value' => '$questions->tag1->text'),
        'na',
        'cca',
    ),
));
?>

模型

public function relations()
{
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
        'tag1' => array(self::HAS_ONE, 'Tags', 'id'),
    );
}
4

2 回答 2

0

您只是变量错误,每一行都使用数据提供程序并存储在变量中,$data因此您只需使其看起来像这样:

<?php
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$questions->search(),
    'filter' => $questions,
    'columns' => array(
        array('class'=>'CCheckBoxColumn'),
        'text',
        'tag1',
        array('header' => 'Tag 1', 'value' => '$data->tag1->text'),
        'tag1.text', //if you relation is setup correct you can also do this
        'na',
        'cca',
    ),
));
?>
于 2013-07-30T16:17:54.010 回答
0

尝试给出这种关系

 public function relations() {
        return array(
            'tags1'=>array(self::BELONGS_TO, 'Tags', 'id'),    
        );
    }
于 2013-07-30T02:05:03.517 回答