/** * @return \yii\db\ActiveQuery */ public function getRelease() { return $this->hasOne(Release::className(), ['id' => 'release_id']); }
/** * @return \yii\db\ActiveQuery */ public function getReleases() { return $this->hasMany(Release::className(), ['id' => 'release_id'])->viaTable('release_tag', ['tag_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getReleases() { return $this->hasMany(Release::className(), ['artist_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getArtist() { return $this->hasOne(Artist::className(), ['id' => 'artist_id']); } public function getTags() { return $this->hasMany(Tag::className(), ['id' => 'tag_id'])->viaTable('release_tag', ['release_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getTracks() { return $this->hasMany(Track::className(), ['release_id' => 'id']); } public function getComname() { return Utils::mergeNames($this->original_name, $this->latin_name); } } Event::on(Release::className(), Release::EVENT_BEFORE_DELETE, function ($event) { foreach ($event->sender->tracks as $item) { $item->delete(); } foreach ($event->sender->covers as $item) { $item->delete(); } });