* @copyright (c), Thread */ abstract class ActiveRecord extends dbActiveRecord { const STATUS_KEY_ON = '1'; const STATUS_KEY_OFF = '0'; /** * @var */ public static $commonQuery = query\ActiveQuery::class; /** * @return array */ public function behaviors() { return [ 'timestamp' => [ 'class' => TimestampBehavior::className(), 'attributes' => [ self::EVENT_BEFORE_INSERT => ['updated_at', 'created_at'], self::EVENT_BEFORE_UPDATE => ['updated_at'], ], ], ]; } /** * @return mixed */ public static function find() { return new static::$commonQuery(get_called_class()); } /** * @return mixed */ public static function findBase() { return self::find(); } /** * @return array */ public static function statusKeyRange() { return [ static::STATUS_KEY_ON => Yii::t('app', 'KEY_ON'), static::STATUS_KEY_OFF => Yii::t('app', 'KEY_OFF') ]; } /** * @param $attribute * @return bool */ public function isAttribute($attribute) { return (in_array($attribute, $this->attributes())) ? true : false; } /** * @param $scenario * @return bool */ public function isScenario($scenario) { return (array_key_exists($scenario, $this->scenarios())) ? true : false; } }