Php 如何在没有关系的Yii2上显示名称而不是id
我有两个表,一个是user,另一个是comment,但我没有使用任何外键。我想在详细视图上显示用户表中的名称而不是id。我该怎么做?我的详细视图代码如下:Php 如何在没有关系的Yii2上显示名称而不是id,php,mysql,yii2,Php,Mysql,Yii2,我有两个表,一个是user,另一个是comment,但我没有使用任何外键。我想在详细视图上显示用户表中的名称而不是id。我该怎么做?我的详细视图代码如下: <?= DetailView::widget([ 'model' => $model, //To hide labels //'model' => $model, 'template' => '<tr><td{conten
<?= 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.''])),
],
],
]) ?>
如果
用户名
是登录用户的姓名,则可以使用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])
),
],
],
]) ?>
看起来您在预期的输出中有相同的代码。。尝试更好地解释..我只想在输出上使用$model userame就是这样的问题是我没有定义任何与注释表中的$model相关的forighn键?没有定义任何关系,也没有外键。您要查找的用户名是登录的用户id的名称?我改为使用$model->user\u id更新答案$user\u 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])
),
],
],
]) ?>