在DetailView Yii2中显示名称而不是ID

时间:2017-11-28 12:43:31

标签: php yii2 yii2-advanced-app

我想在DetailView中显示名称而不是ID。

我在GridView中做了类似的事情:

[
     'attribute' => 'employee_id',
     'value' => 'employee.employee_name'
],

但是,如果我在DetailView上尝试它,它会显示" employee.employee_name"不是员工姓名

这是我的模特:

public function getEmployee()
{
    return $this->hasOne(Employee::className(), ['id' => 'employee_id']);
}

3 个答案:

答案 0 :(得分:0)

我已经找到了答案,我刚刚阅读了Yii2文档。

解决方案是

[
       'attribute' => 'employee_id',
       'value' => $model->employee->employee_name,
],

我希望这也有助于其他人。

答案 1 :(得分:0)

还有更简单的单行解决方案

[
   'attribute' => 'employee.employee_name'
],

答案 2 :(得分:0)

在GridView中,可以使用“ employee.employee_name”方法显示名称。

但是“ DetailView”方法是不同的。您必须使用$ model方法,如下所示。

$model->your_relation_name(without prefixing "action")->field_name

//e.g.
[
'attribute'=> 'Employee Name',
'value'=>$model->employee->employee_name;
]