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

前端之家收集整理的这篇文章主要介绍了如何在Yii2 gridview中连接两个表并获取值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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.

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

  1. <?= GridView::widget([
  2. 'dataProvider' => $dataProvider,'filterModel' => $searchModel,'columns' => [
  3. ['class' => 'yii\grid\SerialColumn'],'object_model','object_id',['class' => 'yii\grid\ActionColumn','template' => '{view} {update} {delete} '],],]); ?>

在我使用的模型中

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

在视野中

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

猜你在找的PHP相关文章