Мне нужно переопределить модель профиля по умолчанию. Мне удалось добавить поля, которые мне нужны, но с тех пор я чего-то не вижу. При вставке и обновлении эти поля не получают обновления в базе данных.Как расширить модель профиля профиля пользователя Yii2, чтобы иметь возможность добавлять дополнительные поля
Я создал необходимые миграции, так у меня есть эти поля в базе данных уже
Что я упускаю> смотрите ниже мое приложение/модели/profile.php
<?php
namespace app\models;
/**
* Description Profile
*
* This form @overrides dektrium\user\models\Profile
*/
use dektrium\user\models\Profile as BaseProfile;
use yii\web\UploadedFile;
use Yii;
use dektrium\user\models\User;
class Profile extends BaseProfile {
/**
* public variables to be added to the model
*/
public $profile_pic;
public $expertise_id;
public $country_id;
public function rules() {
$rules = parent::rules();
$rules['profile_pic'] = ['profile_pic', 'file'];
$rules['expertise_id'] = ['expertise_id', 'integer'];
$rules['country_id'] = ['country_id', 'integer'];
return $rules;
}
/**
* @inheritdoc
*/
public function attributeLabels() {
$labels = parent::attributeLabels();
$labels['profile_pic'] = \Yii::t('user', 'Profile Picture');
$labels['bio'] = \Yii::t('user', 'Biography');
$labels['expertise_id'] = \Yii::t('user', 'Expertise');
$labels['country_id'] = \Yii::t('user', 'Country');
return $labels;
}
}
Здравствуйте, @chapskev, вы заработали? dont you get и error: Неизвестный столбец 'id' в 'where clause', потому что в таблице профиля есть user_id вместо id. Я не могу заставить его работать –
@ open-ecommerce.org да, он работает. В вашей таблице у вас есть id или use_id, я уверен, что если в вашей таблице есть id вместо user_id, вы столкнетесь с ошибкой. Наилучшим сценарием является то, что вы используете миграции – chapskev
@chpskev благодарит много за ответ. но если я изменю user_id на id, я попаду в проблемы, потому что они исходят из модуля dektrium. –