Customer.php 5.15 KB
<?php
    
    namespace common\models;
    
    use Yii;
    use yii\helpers\FileHelper;

    /**
     * This is the model class for table "customer".
     *
     * @property int    $id
     * @property string $name
     * @property string $secondname
     * @property string $dignity
     * @property int    $gender
     * @property string $birth
     * @property string $citizenship
     * @property string $passport
     * @property string $email
     * @property string $organization
     * @property int    $status
     * @property int    $language_id
     * @property string $image
     * @property bool   $conference
     * @property bool   $geee
     * @property bool   $gere
     */
    class Customer extends \yii\db\ActiveRecord
    {
        public $file;
        const STATUS_NEW = 2;
        const STATUS_ACTIVE = 1;
        const STATUS_NO = 0;
        
        const MALE = 1;
        const FEMALE = 2;
        /**
         * {@inheritdoc}
         */
        public static function tableName()
        {
            return 'customer';
        }
        
        /**
         * {@inheritdoc}
         */
        public function rules()
        {
            return [
                [
                    [
                        'gender',
                        'status',
                        'language_id',
                    ],
                    'default',
                    'value' => null,
                ],
                [
                    [
                        'gender',
                        'status',
                        'language_id',
                    ],
                    'integer',
                ],
                [
                    [ 'organization' ],
                    'string',
                ],
                [
                    [
                        'conference',
                        'geee',
                        'gere',
                    ],
                    'boolean',
                ],
                [
                    [
                        'name',
                        'secondname',
                        'dignity',
                        'birth',
                        'citizenship',
                        'passport',
                        'email',
                        'image',
                    ],
                    'string',
                    'max' => 255,
                ],
                [
                    [ 'gender' ],
                    'in',
                    'range' => [
                        self::MALE,
                        self::FEMALE,
                    ],
                ],
                [
                    [
                        'gender',
                        'organization',
                        'name',
                        'secondname',
                        'birth',
                        'citizenship',
                        'passport',
                        'email',
                        'image',
                    ],
                    'required',
                ],
                ['email', 'email'],
                ['file', 'file', 'skipOnEmpty' => false, 'checkExtensionByMimeType'=>false,'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024*2]
            
            ];
        }
        
        /**
         * {@inheritdoc}
         */
        public function attributeLabels()
        {
            return [
                'id'           => Yii::t('app', 'ID'),
                'name'         => Yii::t('app', 'Name'),
                'secondname'   => Yii::t('app', 'Secondname'),
                'dignity'      => Yii::t('app', 'Dignity'),
                'gender'       => Yii::t('app', 'Gender'),
                'birth'        => Yii::t('app', 'Birth'),
                'citizenship'  => Yii::t('app', 'Citizenship'),
                'passport'     => Yii::t('app', 'Passport'),
                'email'        => Yii::t('app', 'Email'),
                'organization' => Yii::t('app', 'Organization'),
                'status'       => Yii::t('app', 'Status'),
                'language_id'  => Yii::t('app', 'Language ID'),
                'image'        => Yii::t('app', 'Image'),
                'conference'   => Yii::t('app', 'Conference'),
                'geee'         => Yii::t('app', 'Geee'),
                'gere'         => Yii::t('app', 'Gere'),
            ];
        }
        
        
        public function upload($file)
        {
            /**
             * @var \yii\web\UploadedFile $file;
             */
            $this->file = $file;
            if (!empty($file)) {
                if (!file_exists(\Yii::getAlias('@storage/customers/'))) {
                    FileHelper::createDirectory(\Yii::getAlias('@storage/customers/'));
                }
                $filename = $file->baseName.'_'.Yii::$app->security->generateRandomString(5).'.'.$file->extension;
	            if ($file->saveAs(\Yii::getAlias('@storage/customers/') . $filename)) {
                    $this->image = '/storage/customers/'.$filename;
                    $this->file->name = $filename;
                    return true;
                }
                return false;
            
            }
            return true;
        }
    }