Yii2如何在GridView中锚定关系的值

Yii2 how to anchor the value of the relationship in the GridView

我是初学者。我讲解题目:

Ticket模型中存在这样的关系:

public function getTyp()
{
    return $this->hasOne(Typology::className(), [ 'id' =>'typ_id']);
}

并且在工单 table 中有 typ_id 列(它与 Typology table 的 ID 相关)。 在视图 views/ticket/index.php 中有 GridView::widget 这些 columns:

  [
     'attribute' => 'typ_id',
     'value' => 'typ.typology' 
  ],

我想锚定关系的价值。 我试过这个:

  [
     'attribute' => 'typ_id',
     'value' => function ($model) {
               return Html::a (
              'typ.typology',
              '/typology/view?id='.$model->typ_id
               );
      }
  ]

但是没用

有人可以帮助我吗?

Html::a() interprets typ.typology as raw string. Use $model in value closure通过关系得到必要的属性。

另外,不要手动将 url 与其参数连接起来,只需将它们传递到数组中即可(请参阅 Url::to() 了解 link 的构造方式)。

[
    'attribute' => 'typ_id',
    'value' => function ($model) {
        return Html::a($model->typ->typology, ['/typology/view', 'id' => $model->typ_id]);
    },
],