2017-06-29 168 views
2

对不起,我是框架的新手 我见过很多来自Doingiteasy YouTube频道的教程并停留在此 我想要一个示例将id_status更改为'infostatus'。 我在视频中听说,要将id更改为姓名,我必须使用关系。我在哪里可以找到?yii2 - 从数据库中获取名称而不是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']); 
    } 
} 

我的模型,这是模型状态

回答

1

你可以的关系添加到您的Reservasi获取信息的模型

假设你有一个包含字段名和infostatus一个型号命名状态

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

,那么你可以参考

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

你的意思[ 'id_status'=> 'id_status']); ?原因id用于用户表中。 和我在哪里可以把这个$ model-> infostatus; ? 视图怎么样?我听说我neet要改变这样的 'id_stats(关系或什么,我混淆rightnow).infostatus' –

+0

检查您的状态模型...关系中的id是状态模型类的ID .. ..和你如在答案你有你的$ model-> infostatus中的数据.. – scaisEdge

+0

啊,我明白了,谢谢 –