如何与相关表的GridView中的工作:Yii2

问题描述:

,我写我的代码是这样的:如何与相关表的GridView中的工作:Yii2

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => [ 
     //['class' => 'yii\grid\SerialColumn'], 

     'quantity', 
     [ 
      'header' => 'SN', 
      'format' => 'raw', 
      'value' => function($data) { 
       $product = Product::findOne($data->product_ID); 
       return $product->SN_required ? '<span class="glyphicon glyphicon-ok"></span>' : ''; 
      } 
     ], 

为了显示它是这样的:

enter image description here

然而,我认为这是不正确的(eventho它的工作)。有人能给我这种代码的正确表示吗?

我知道这与模型关系有关。 Yii2已经改变了。

public function getProduct() 
{ 
    return $this->hasOne(Product::className(), ['ID' => 'product_ID']); 
} 

你是在正确的轨道上。你可以在你的情况下,使用$data->relation瓶盖内访问关系:

'value' => function($data) { 
    return $data->product->SN_required ? '<span class="glyphicon glyphicon-ok"></span>' : ''; 
} 

您可以了解更多信息查看Yii2 page on working with relations in data widgets

+0

除非你想看到“'raw','效果很好,谢谢! – Paramone 2015-03-03 08:10:50