我想在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']);
}
答案 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;
]