yii2-从数据库中获取名称而不是id

yii2-从数据库中获取名称而不是id,yii2,frameworks,Yii2,Frameworks,对不起,我是框架的新手 我在youtube频道上看到了很多教程,并一直坚持在这一点上 我想要一个将id_状态更改为“infostatus”的示例。 我在视频中听到,要将id更改为名称,我必须使用关系。我在哪里能找到 这是我的视图索引 <?php use yii\helpers\Html; use yii\grid\GridView; /* @var $this yii\web\View */ /* @var $searchModel app\models\ReservasiSearch

对不起,我是框架的新手 我在youtube频道上看到了很多教程,并一直坚持在这一点上 我想要一个将id_状态更改为“infostatus”的示例。 我在视频中听到,要将id更改为名称,我必须使用关系。我在哪里能找到

这是我的视图索引

<?php

use yii\helpers\Html;
use yii\grid\GridView;

/* @var $this yii\web\View */
/* @var $searchModel app\models\ReservasiSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Reservasis';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="reservasi-index">

    <h1><?= Html::encode($this->title) ?></h1>
    <?php // echo $this->render('_search', ['model' => $searchModel]); ?>

    <p>
        <?= Html::a('Create Reservasi', ['create'], ['class' => 'btn btn-success']) ?>
    </p>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'id_reservasi',
            'id_paket',
            **'id_status',**
            'id_jadwal',
            'id',
            // 'tanggalreservasi',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
</div>


这是我在reservasi的模特

<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "reservasi".
 *
 * @property string $id_reservasi
 * @property string $id_paket
 * @property integer $id_status
 * @property string $id_jadwal
 * @property string $id
 * @property string $tanggalreservasi
 *
 * @property User $id0
 * @property Jadwal $idJadwal
 * @property Paket $idPaket
 * @property Status $idStatus
 */
class Reservasi extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'reservasi';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['id_reservasi', 'tanggalreservasi'], 'required'],
            [['id_status'], 'integer'],
            [['tanggalreservasi'], 'safe'],
            [['id_reservasi'], 'string', 'max' => 15],
            [['id_paket'], 'string', 'max' => 5],
            [['id_jadwal'], 'string', 'max' => 4],
            [['id'], 'string', 'max' => 6],
            [['id'], 'exist', 'skipOnError' => true, 'targetClass' => Users::className(), 'targetAttribute' => ['id' => 'id']],
            [['id_jadwal'], 'exist', 'skipOnError' => true, 'targetClass' => Jadwal::className(), 'targetAttribute' => ['id_jadwal' => 'id_jadwal']],
            [['id_paket'], 'exist', 'skipOnError' => true, 'targetClass' => Paket::className(), 'targetAttribute' => ['id_paket' => 'id_paket']],
            [['id_status'], 'exist', 'skipOnError' => true, 'targetClass' => Status::className(), 'targetAttribute' => ['id_status' => 'id_status']],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id_reservasi' => 'Id Reservasi',
            'id_paket' => 'Id Paket',
            'id_status' => 'Id Status',
            'id_jadwal' => 'Id Jadwal',
            'id' => 'ID',
            'tanggalreservasi' => 'Tanggalreservasi',
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getId0()
    {
        return $this->hasOne(Users::className(), ['id' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getIdJadwal()
    {
        return $this->hasOne(Jadwal::className(), ['id_jadwal' => 'id_jadwal']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getIdPaket()
    {
        return $this->hasOne(Paket::className(), ['id_paket' => 'id_paket']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getIdStatus()
    {
        return $this->hasOne(Status::className(), ['id_status' => 'id_status']);
    }
}

您可以向Reservasi模型添加一个关系,以获取信息状态

假设您有一个名为Status的模型,其中包含id和infostatus字段

  /* ActiveRelation */
  public function getInfostatus()
  {
      return $this->hasOne(Status::className(), ['id' => 'id_status']);
  }
那么你可以参考

 $model->infostatus; // for get the value

你的意思是['id_status'=>'id_status'])?原因id在用户表中使用。我可以把$model->infostatus;放在哪里?风景怎么样?我听说我需要这样更改“id_stats(关系或我现在弄糊涂的东西)。infostatus”检查您的状态模型…相关的id是状态模型类的id。。作为回答,您在$model->infostatus中有数据。。
 $model->infostatus; // for get the value