2017-06-29 57 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

啊,我明白了,謝謝 –

相關問題