2017-06-29 7 views
2

フレームワークのための新しい初心者 私はDoingiteasyのyoutubeチャンネルから多くのチュートリアルを見てきましたが、この にこだわっていますが、id_statusを 'infostatus'に変更する例が必要です。 私はビデオで聞いて、名前にIDを変更するには、私は関係を使用する必要があります。どこで見つけることができますか?yii2 - データベースのIDの代わりに名前を取得

これは、これは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']); 
    } 
} 

からの私のモデルであり、私の見解インデックス

<?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に関係を追加することができ

答えて

1

モデルステータスからですinfostatusを取得するためのモデル

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

が、その後、あなたが[ 'id_status' => 'id_statusを'])意味ですか

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

を参照してください可能性がありますが、フィールドIDとinfostatusが含まれているモデルという名前のステータスを持っていると仮定すると、 ?原因IDはユーザーテーブルで使用されます。 どこにこの$ model-> infostatusを入れることができますか? ? ビューはどうですか? 'id_stats(関係や何か私が右に混乱させたもの).infostatus' –

+0

あなたのステータスモデルをチェックしてください...関係のIDはステータスモデルクラスのIDです..あなたとあなたあなたの$ model-> infostatusにデータがあります。 – scaisEdge

+0

ああ、ありがとうございました。 –

関連する問題