common/models/UserProfile.php
<?php
namespace common\models;
use trntv\filekit\behaviors\UploadBehavior;
use yii\db\ActiveRecord;
/**
* This is the model class for table "user_profile".
*
* @property integer $user_id
* @property integer $locale
* @property string $firstname
* @property string $middlename
* @property string $lastname
* @property string $picture
* @property string $avatar
* @property string $avatar_path
* @property string $avatar_base_url
* @property integer $gender
*
* @property User $user
*/
class UserProfile extends ActiveRecord
{
const GENDER_MALE = 1;
const GENDER_FEMALE = 2;
/**
* @var
*/
public $picture;
/**
* @return array
*/
public function behaviors()
{
return [
'picture' => [
'class' => UploadBehavior::className(),
'attribute' => 'picture',
'pathAttribute' => 'avatar_path',
'baseUrlAttribute' => 'avatar_base_url'
]
];
}
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%user_profile}}';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['user_id'], 'required'],
[['user_id', 'gender'], 'integer'],
[['gender'], 'in', 'range' => [null, self::GENDER_FEMALE, self::GENDER_MALE]],
[['firstname', 'middlename', 'lastname', 'avatar_path', 'avatar_base_url'], 'string', 'max' => 255],
['locale', 'default', 'value' => \Yii::$app->language],
['locale', 'in', 'range' => array_keys(\Yii::$app->params['availableLocales'])],
['picture', 'safe']
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'user_id' => \Yii::t('common', 'User ID'),
'firstname' => \Yii::t('common', 'Firstname'),
'middlename' => \Yii::t('common', 'Middlename'),
'lastname' => \Yii::t('common', 'Lastname'),
'locale' => \Yii::t('common', 'Locale'),
'picture' => \Yii::t('common', 'Picture'),
'gender' => \Yii::t('common', 'Gender'),
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
/**
* @return null|string
*/
public function getFullName()
{
if ($this->firstname || $this->lastname) {
return implode(' ', [$this->firstname, $this->lastname]);
}
return null;
}
/**
* @param null $default
* @return bool|null|string
*/
public function getAvatar($default = null)
{
return $this->avatar_path
? \Yii::getAlias($this->avatar_base_url.'/'.$this->avatar_path)
: $default;
}
}