加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在Yii2 gridview中连接两个表并获取值

发布时间:2020-12-13 13:31:40 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Yii2 gridview小部件来显示数据. 我正在使用两个名为message和message_trigger的表. 在消息表中,列是object_model,Object_id. 在message_trigger中,该列是object_id,object_name. 网格从表消息中获取值.所以网格字段是Object_model,Object_id. 现
我正在使用Yii2 gridview小部件来显示数据.

我正在使用两个名为message和message_trigger的表.

在消息表中,列是object_model,Object_id.

在message_trigger中,该列是object_id,object_name.

网格从表消息中获取值.所以网格字段是Object_model,Object_id.

现在我的问题是我需要根据表消息中的object_id从表message_trigger中显示Object_name.

在我的表格中,我使用了这样的网格

<?= GridView::widget([
    'dataProvider' => $dataProvider,'filterModel' => $searchModel,'columns' => [
        ['class' => 'yiigridSerialColumn'],'object_model','object_id',['class' => 'yiigridActionColumn','template' => '{view} {update} {delete} '],],]); ?>

在我使用的模型中

public function search($params){
    $query = AlertTrigger::find()->where(['alert_id'=>$params['id']])->andWhere(['!=','status',2]);
    $dataProvider = new ActiveDataProvider([
        'query' => $query,]);
}
在消息模型中
public function getMessageTrigger()
{
    return $this->hasOne(MessageTrigger::className(),['object_id' => 'object_id']);
}

在视野中

<?= GridView::widget([
    'dataProvider' => $dataProvider,[
            'label' => 'Name','value' => 'messageTrigger.object_name',]); ?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读