我知道如何在gridview和detail视图中显示yii框架中的name而不是id。
下面是view.php中的部分代码
<?= DetailView::widget([
'model' => $model,
'condensed' => false,
'hover' => true,
'attributes' => [
'user_branch_id',
//'user_id',
[
'attribute'=>'user_id',
'value' =>$model->user->username,
],
//'branch_id',
[
'attribute'=>'branch_id',
'value' =>$model->branch->branch_name,
],
'status',
/* [
'attribute' => 'created_at',
'format' => [
'datetime', (isset(Yii::$app->modules['datecontrol']['displaySettings']['datetime']))
? Yii::$app->modules['datecontrol']['displaySettings']['datetime']
: 'd-m-Y H:i:s A'
],
'type' => DetailView::INPUT_WIDGET,
'widgetOptions' => [
'class' => DateControl::classname(),
'type' => DateControl::FORMAT_DATETIME
]
],
*/
**// 'created_by',
[
'attribute'=>'created_by',
'value' =>$model->user->username,
],**
[
'attribute' => 'last_update',
'format' => [
'datetime', (isset(Yii::$app->modules['datecontrol']['displaySettings']['datetime']))
? Yii::$app->modules['datecontrol']['displaySettings']['datetime']
: 'd-m-Y H:i:s A'
],
'type' => DetailView::INPUT_WIDGET,
'widgetOptions' => [
'class' => DateControl::classname(),
'type' => DateControl::FORMAT_DATETIME
]
],
],
'deleteOptions' => [
'url' => ['delete', 'id' => $model->user_id],
],
'enableEditMode' => true,
]) ?>
我有以下特点:
1. [
'attribute'=>'user_id',
'value' =>$model->user->username,
],
2. [
'attribute'=>'created_by',
'value' =>$model->user->username,
],
当我在下面的截图上检索时,它显示相同的用户名,而id是不同的。
列创建者:1列用户id:3
1条答案
按热度按时间btxsgosb1#
最后我解决了我的问题,在模型中,因为两列是来自同一个表用户的外键,所以模型生成了两个get函数
getuser()
getcreatedby公司
那么我的代码解决方案是
[ 'attribute'=>'user_id', 'value' =>$model->user->username, ], 'attribute'=>'created_by', 'value' =>$model->createdBy->username, ],