Customers.php 2.64 KB
<?php

namespace common\models;

use Yii;
use yii\behaviors\TimestampBehavior;
/**
 * This is the model class for table "customers".
 *
 * @property integer $id
 * @property string $username
 * @property string $surname
 * @property string $auth_key
 * @property string $password_hash
 * @property string $password_reset_token
 * @property string $email
 * @property string $phone
 * @property integer $status
 * @property integer $created_at
 * @property integer $updated_at
 */
class Customers extends User
{

    const SCENARIO_ORDER = 'order';
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'customers';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['status', 'created_at', 'updated_at'], 'integer'],
            [['username', 'password_hash', 'password_reset_token', 'email', 'phone','surname'], 'string', 'max' => 255],
            [['auth_key'], 'string', 'max' => 32],
//            [['email'], 'unique'],
//            [['password_reset_token'], 'unique'],
//            [['phone'], 'unique'],
            [
                ['username', 'auth_key', 'password_hash', 'email', 'phone'],
                'required',
                'on'=>[Customers::SCENARIO_DEFAULT]
            ],
            [
                ['username', 'auth_key', 'password_hash', 'email', 'phone'],
                'safe',
                'on'=>[Customers::SCENARIO_ORDER]
            ],
        ];
    }


    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            TimestampBehavior::className(),
        ];
    }

    /**
     * Finds user by email
     *
     * @param string $email
     * @return static|null
     */
    public static function findByEmail($email)
    {
        return static::findOne(['email' => $email, 'status' => self::STATUS_ACTIVE]);
    }

    public function getName(){
        return $this->username. ' '.$this->surname;
    }


    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => Yii::t('app', 'ID'),
            'username' => Yii::t('app', 'username'),
            'surname' => Yii::t('app', 'surname'),
            'auth_key' => Yii::t('app', 'auth_key'),
            'password_hash' => Yii::t('app', 'password_hash'),
            'password_reset_token' => Yii::t('app', 'password_reset_token'),
            'email' => Yii::t('app', 'email'),
            'phone' => Yii::t('app', 'phone'),
            'status' => Yii::t('app', 'status'),
            'created_at' => Yii::t('app', 'created_at'),
            'updated_at' => Yii::t('app', 'updated_at'),
        ];
    }
}