SaveImgBehavior::className(), 'fields' => [ ['name'=>'imageUpload','directory' => 'event' ], ['name'=>'banner','directory' => 'event' ], ] ], TimestampBehavior::className(), 'slug' => [ 'class' => 'common\behaviors\Slug', 'in_attribute' => 'name', 'out_attribute' => 'alias', 'translit' => true ], [ 'class' => 'common\behaviors\ShowImage', ], ]; } public function beforeSave($insert) { if (parent::beforeSave($insert)) { $this->end_at = !empty($this->end_at) ? strtotime($this->end_at) : ''; return true; } else { return false; } } public function afterFind(){ $this->end_at = !empty($this->end_at) ? date("Y-m-d", $this->end_at) : ''; } /** * @inheritdoc */ public function rules() { return [ [['body', 'seo_text'], 'string'], [['created_at', 'updated_at' ], 'integer'], [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255], [['name','body'], 'required'], [['imageUpload'], 'safe'], [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'], [['products_file'], 'file'], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'event_id' => Yii::t('app', 'ID акции'), 'name' => Yii::t('app', 'name'), 'alias' => Yii::t('app', 'alias'), 'body' => Yii::t('app', 'body'), 'image' => Yii::t('app', 'image'), 'meta_title' => Yii::t('app', 'meta_title'), 'description' => Yii::t('app', 'description'), 'h1' => Yii::t('app', 'h1'), 'seo_text' => Yii::t('app', 'seo_text'), 'created_at' => Yii::t('app', 'created_at'), 'updated_at' => Yii::t('app', 'updated_at'), 'end_at' => Yii::t('app', 'end_at'), 'status' => Yii::t('app', 'Статус акции'), 'products_file' => Yii::t('app', 'Загрузка файла'), ]; } public function isActive(){ if($this->status){ if(!empty($this->end_at) && (strtotime($this->end_at) <= strtotime(date("Y-m-d")))){ return false; } return true; } return false; } public function getProducts(){ return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']); } }