yii2 отображает имя пользователя вместо идентификатора пользователя - PullRequest
0 голосов
/ 12 мая 2019

Я использую yii2-user-management от webvimark для разработки своего проекта.

Я также использую BlameableBehavior для записи изменений данных.

Когда я просматриваю данные, он отображает идентификатор пользователя в полях create_by и updated_by.

Вопрос в том, как отобразить имя пользователя вместо идентификатора в коде представления?

1 Ответ

0 голосов
/ 12 мая 2019

Определите отношения в вашей модели, как показано ниже

public function getCreator(){
    return $this->hasOne(User::class,['id','created_by']);
}

public function getModifier(){
    return $this->hasOne(User::class,['id','updated_by']);
}

Примечание: если вы используете более раннюю версию php, например 5.6 или ранее, вы можете использовать ::className() вместо ::class. о разнице см. здесь

Затем используйте ваше отношение в представлении для отображения поля username вместо идентификатора пользователя, я предполагаю, что вы используете DetailView

 <?php echo DetailView::widget([
        'model' => $model,
        'attributes' => [
            'creator.username',
            'modifier.username',
        ],
 ]);
 ?>
...