我这里有问题。如何从用户表中调用字段“用户名”?我想在这里显示用户名而不是user_id。这里的图片: I want to show the username not the user_id in part 'Direquest oleh' and 'Disetujui/Ditolak oleh'
这里是我的代码:
[
'attribute' => 'waktu_request',
'label' => 'Waktu Request',
'format' => ['DateTime', 'php:d M Y H:i:s'],
'filter' => '',
],
[
'attribute'=>'requested_by',
'label' => 'Direquest oleh',
'value' => function($model){
if($model->requested_by == NULL){
return '-';
}else{
return $model->requested_by;
}
}
],
[
'attribute'=>'approved_rejected_by',
'label' => 'Disetujui/Ditolak oleh',
'value' => function($model){
if($model->approved_rejected_by == NULL){
return '-';
}else{
return $model->approved_rejected_by;
}
}
],
我希望有人能在这里解决我的问题。为了你的关注,我说谢谢。
答案 0 :(得分:1)
如果您使用Gii生成模型和crud,则可能已经生成了名为getRequestedBy()
和getApprovedRejectedBy()
的关系。
[
'attribute'=>'requested_by',
'label' => 'Direquest oleh',
'value' => function($model){
return ($model->requested_by) ? $model->requestedBy->username : '-';
}
],
[
'attribute'=>'approved_rejected_by',
'label' => 'Disetujui/Ditolak oleh',
'value' => function($model){
return ($model->approved_rejected_by) ? $model->approvedRejectedBy->username : '-';
}
],
不要忘记在searchModel中添加关系以进行急切加载,即减少查询次数。例如,
ModelName::find()->with(['requestedBy', 'approvedRejectedBy']);
答案 1 :(得分:-2)
首先,您需要在模型类中创建一个函数,如
public function getCreatedByText()
{
$user = User::findOne($this->created_by);
if ($user != null) {
return $user->username;
}
return '-';
}
然后你就像那样分配这个功能
'label' => 'Created At',
'value' => $model->getCreatedAtText()
如果您不理解,请告诉我。我会尽力而为。