Laravel.io
<?php

namespace common\models;

use yii\db\ActiveRecord;
use yii\db\Expression;
use yii\behaviors\TimestampBehavior;


class OrderFiles extends base\OrderFiles
{
    /**
     * Полис
     */
    const TYPE_POLIS = 'polis';
    /**
     * Права
     */
    const TYPE_DRIVE_FRONT = 'drive_front';

    /**
     * Права
     */
    const TYPE_DRIVE_BACK = 'drive_back';

    /**
     * Техпаспорт
     */
    const TYPE_TECH = 'tech';

    /**
     * Документ на льготу
     */
    const TYPE_BENEFIT = 'benefit';

    /**
     * Другое
     */
    const TYPE_OTHER = 'other';
    
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            [
                'class' => TimestampBehavior::className(),
                'attributes' => [
                    ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
                    ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
                ],
                'value' => new Expression('NOW()'),
            ],
        ];
    }
    
    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'order_id' => 'ID Заявки',
            'name' => 'Файл',
            'path' => 'Путь',
            'type' => 'Тип',
            'user_id' => 'ID Пользователя',
            'comment' => 'Комментарий',
            'created_at' => 'Создан',
            'updated_at' => 'Обновлен',
        ];
    }
    
    /**
     * @return array
     */
    public static function getFileTypes()
    {
        return [
            self::TYPE_POLIS => 'Полис',
            self::TYPE_DRIVE_FRONT => 'Права(лицевая)',
            self::TYPE_DRIVE_BACK => 'Права(тыльная)',
            self::TYPE_TECH => 'Техпаспорт',
            self::TYPE_BENEFIT => 'Док.(на_льготу)',
            self::TYPE_OTHER => 'Другое',
        ];
    }

    /**
     * На фронте загружаем только один файл
     * @return array
     */
    public static function getFileTypesSite()
    {
        return [
            self::TYPE_POLIS => 'Полис',
        ];
    }
    
    /**
     * @param integer $orderId
     * @param string $type
     * @return array|boolean
     */
    public static function findByType($orderId, $type)
    {
        return self::find()->where([
            'order_id' => $orderId,
            'type' => $type
        ])->one();
    }

    public function getExt(){
        return strtolower(pathinfo($this->path, PATHINFO_EXTENSION));
    }

    public function isImg(){
        $fileExt = $this->getExt();
        return $fileExt == "jpg" || $fileExt == "jpeg" || $fileExt == "png";
    }

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

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

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

Please note that all pasted data is publicly available.