如何在DetailView yii2中根据它的名称显示值?

时间:2017-05-17 19:21:04

标签: yii2

我试图根据它的名称显示category值,而不是ID。我试图这样做:

[
   'attribute' => 'category_id',
    'value' => 'category.name',
],

但是属性没有显示出来。它显示:name而不是Category。类别名称显示正确。

还尝试了'category.name',但它显示了相同的值,'category_id'正确显示标签,但名称 - 根据ID&#39}。

我该如何解决?

2 个答案:

答案 0 :(得分:2)

您是否定义类别的关系,像这样?

public function getCategory()
{
   return $this->hasOne(Category::className(),['id'=>'category_id']);
}

如果要在GridView中显示,可以像你一样

[
   'attribute' => 'category_id',
    'value' => 'category.name',
],

如果要在DetailView中显示,可以这样做

[
   'attribute' => 'category_id',
    'value' => $model->category ? $model->category->name : '',
],

答案 1 :(得分:0)

似乎你需要一个标签。

最简单的方法是在详细视图项

中直接添加标签
[
  'label' => 'Category',
  'attribute' => 'category_id',
  'value' => ....,

],