如何在视图中显示yii2数据库关系

时间:2016-08-17 11:10:03

标签: model-view-controller yii2

我是yii2的新人。我对表关系知之甚少。我有3桌商店促销和promotion_details。 promotion_details包含促销ID和商店ID。促销具有活动或非活动状态。我希望在商店视图中只显示有效的促销活动。我怎样才能做到这一点?提前致谢

1 个答案:

答案 0 :(得分:0)

在promotion_detail视图中,为关系添加getter函数,为字段添加getter函数

/* ActiveRelation */
public function getPropomition()
{
   return $this->hasOne(Promotion::className(), ['id' => 'promotion_id']);
}

/* Getter for status name */
public function getStatus() {
   return $this->prpmotion->status;
}

在视图中

echo GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'id',
        .......
        'status',
        ['class' => 'yii\grid\ActionColumn'],
    ]
]);

本指南可能很有用http://www.yiiframework.com/wiki/621/filter-sort-by-calculated-related-fields-in-gridview-yii-2-0/