Php 如何在没有关系的Yii2上显示名称而不是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

我有两个表,一个是user,另一个是comment,但我没有使用任何外键。我想在详细视图上显示用户表中的名称而不是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.''])),
               ],
          ],
      ]) ?>

如果
用户名
是登录用户的姓名,则可以使用
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])
             ),
           ],
      ],
  ]) ?>