Как создать связь Yii2-user с моей таблицей?

Установил Yii2-user к себе в проект, создал свою таблицу contact в которой есть столбцы "id", "user_id", "phone", "email", "skype", "adress", "index". Интересует вопрос, как связать стандартную таблицу "User" от yii2-user с моей таблицей "contact"?

Т.е. мне надо что бы на сайте я мог обращаться к авторизированному пользователю, и получать его связь с таблицей контактов (для Вывода, редактирования и т.д.)
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
А разве через реляционную связь не подходит? Нужно добавить в модель вашего проекта. Если у вас стоит расширение, то надо переопределить identityClass на вашу модель в проекте.

'components' => [
        'user' => [
            'identityClass' => 'app\models\User',
        ],
    ],


В эту модель скопировать все методы из модели расширения Yii2-user и добавить в нее нужную вам связь.

/**
     * @return \yii\db\ActiveQuery
     */
    public function getСontact()
    {
        return $this->hasOne(Сontact::className(), ['user_id' => 'id']);
    }


После чего использовать можно так:
Yii::$app->user->contact

Либо так:
$model = User::find()->all();
$model->contact;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы