<?php namespace app\models; use Yii; use yii\behaviors\TimestampBehavior; use yii\db\Expression; /** * This is the model class for table "{{%filters}}". * * @property int $id * @property string $pattern Домен * @property string|null $created Дата записи * @property int $include Исключение или включение * @property int $status Статус * @property int $type Тип */ class Filter extends \yii\db\ActiveRecord { const INCLUDE_OFF = 0; //включая const INCLUDE_ON = 1; //выключая const STATUS_OFF = 0; //выкл const STATUS_ON = 1; //вкл const TYPE_BEFORE = 0; //До добавления БД const TYPE_AFTER = 1; //После добавления БД /** * {@inheritdoc} */ public static function tableName() { return '{{%filters}}'; } public function behaviors() { return [ [ 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'created', 'updatedAtAttribute' => null, 'value' => new Expression('NOW()'), ], ]; } /** * {@inheritdoc} */ public function rules() { return [ [['pattern'], 'required'], ['include', 'in', 'range' => array_keys(self::getIncludes())], ['status', 'in', 'range' => array_keys(self::getStatus())], ['type', 'in', 'range' => array_keys(self::getTypes())], [['created', 'pattern'], 'safe'], [['include', 'status', 'type'], 'integer'] ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'pattern' => 'Pattern', 'created' => 'Date', 'include' => 'Included', 'status' => 'Status', 'type' => 'Type' ]; } /** * {@inheritdoc} * @return FilterQuery the active query used by this AR class. */ public static function find() { return new FilterQuery(get_called_class()); } public static function getIncludes($inc = false) { $arr = [ self::INCLUDE_ON => 'Yes', self::INCLUDE_OFF => 'No' ]; if (is_numeric($inc)) { if (array_key_exists($inc, $arr)) { return $arr[$inc]; } return $inc; } return $arr; } public static function getStatus($status = false) { $arr = [ self::STATUS_OFF => 'Disable', self::STATUS_ON => 'Enable' ]; if (is_numeric($status)) { if (array_key_exists($status, $arr)) { return $arr[$status]; } return $status; } return $arr; } public static function getTypes($type = false) { $arr = [ self::TYPE_BEFORE => 'Before', self::TYPE_AFTER => 'After' ]; if (is_numeric($type)) { if (array_key_exists($type, $arr)) { return $arr[$type]; } return $type; } return $arr; } }