2017-07-29 84 views
1

我有一個新的問題yii2。 如何在view/viewname/index中的gridview中的其他表中顯示關係值,並添加一個按鈕來確認?如何將關係屬性添加到gridview yii2?

謝謝

<?php 
 

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

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

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

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

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

 
      'id', 
 
      'network', 
 
      'technology', 
 
      'sup_id', 
 
      'speaker', 
 
      // 'optical_drive', 
 
      // 'webcam', 
 
      // 'touchpad', 
 
      // 'card_reader', 
 
      // 'ethernet', 
 
      // 'vga', 
 
      // 'hdmi', 
 
      // 'usb3_ports', 
 
      // 'usb2_ports', 
 
      // 'usb_type_c', 
 
      // 'thunderbolt_ports', 
 
      // 'serial_ports', 
 

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

如何在這裏添加新的屬性,並添加一個按鈕?

回答

0

爲獲得相關值,您可以添加到模型

的關係

public function getYourRelatedModel() 
{ 
    return $this->hasOne(YourRelatedModel::className(), ['id' => 'your_id_fk']); 
} 

和添加getter您需要

public function getYour_field() { 
    return $this->yourRelatedModel->your_field; 
} 

和最後一個領域的功能添加到你的gridview列

'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 

     'id', 
     'network', 
     'technology', 
     'sup_id', 
     'speaker', 
     'your_field', 
+0

that works.thank uuu :))) – areff

+0

有沒有什麼辦法讓sortby鏈接呢? – areff

+0

「make sortby link」是什麼意思?..我不明白......如果點擊按屬性clicked排序,我不明白...... – scaisEdge