php - 如何在没有关系的情况下在 Yii2 上显示名称而不是 id
问题描述
我有两张表,一张是用户,另一张是评论,但我没有使用任何类型的外键。我想在详细视图上显示用户表中的名称而不是 id。我怎样才能做到这一点?我的详细视图代码如下:
<?= DetailView::widget([
'model' => $model,
//To hide labels
//'model' => $model,
'template' => '<tr><td{contentOptions}>{value}</td></tr>',
'attributes' => [
[
'attribute' => 'user_id',
'format' => 'raw',
'label' =>'',
'value'=>Html::a($model->user_id, Url::toRoute(['/profile-user/view?id='.$model->user_id.''])),
],
],
]) ?>
预期的输出是这样的
<?= DetailView::widget([
'model' => $model,
//To hide labels
//'model' => $model,
'template' => '<tr><td{contentOptions}>{value}</td></tr>',
'attributes' => [
[
'attribute' => 'user_id',
'format' => 'raw',
'label' =>'',
'value'=>Html::a($model->username, Url::toRoute(['/profile-user/view?id='.$model->user_id.''])),
],
],
]) ?>
解决方案
如果username
是登录用户的名称,那么您可以使用Yii::$app->user->identity->username
:
<?= DetailView::widget([
'model' => $model,
//To hide labels
//'model' => $model,
'template' => '<tr><td{contentOptions}>{value}</td></tr>',
'attributes' => [
[
'attribute' => 'user_id',
'format' => 'raw',
'label' => '',
'value' => Html::a(
Yii::$app->user->identity->username,
Url::toRoute(['/profile-user/view', 'id' => $model->user_id])
),
],
],
]) ?>
如果username
是模型的一列,User
以 id 作为主键,您可以使用:
<?= DetailView::widget([
'model' => $model,
//To hide labels
//'model' => $model,
'template' => '<tr><td{contentOptions}>{value}</td></tr>',
'attributes' => [
[
'attribute' => 'user_id',
'format' => 'raw',
'label' => '',
'value' => Html::a(
User::findOne($model->user_id)->username,
Url::toRoute(['/profile-user/view', 'id' => $model->user_id])
),
],
],
]) ?>
推荐阅读
- microsoft-graph-api - 您如何确定驱动项是否可以版本控制
- git - 自定义 git“bang”别名的 Zsh 完成 - Git 分支名称
- android - Android Studio API 级别 28:旋转模拟器不会旋转应用内容或设备 UI
- bash - “while” bash 的问题
- android - Android BitmapFactory.decodeFile(path) 总是返回 null
- python - 在 Python 中测试密码的强度
- firebase - Firebase 规则 - 模拟器说是,代码说不
- vba - VBA-将多个CSV导入工作表,删除某些行/列
- c# - 如何使用 C# 在 Azure blob 存储中解压缩大小为 40 gb 的文件
- python - 在另一个列表中排序列表