/** * @return \yii\db\ActiveQuery */ public function getPhotos() { return $this->hasMany(Photo::className(), ['schoolId' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getPhotos() { return $this->hasMany(Photo::className(), ['place_id' => 'place_id']); }
/** * @return \yii\db\ActiveQuery */ public function getIdphoto0() { return $this->hasOne(Photo::className(), ['idphoto' => 'idphoto']); }
public function getPhotos() { return $this->hasOne(Photo::className(), ['parent_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getPhotos() { return $this->hasMany(Photo::className(), ['uploadUserId' => 'id']); }
Event::on(Photo::className(), Photo::EVENT_BEFORE_INSERT, function ($event) { // если это первый кавер, то делаем его основным, // иначе, если этот кавер должен стать основным, сбрасываем is_main у всех предыдущих каверов $photo = $event->sender; if (!$photo->artist->getPhotos()->count()) { $photo->is_main = true; } elseif ($photo->is_main) { Photo::resetIsMain($photo->artist_id); } }); Event::on(Photo::className(), Photo::EVENT_BEFORE_UPDATE, function ($event) { // если этот кавер должен стать основным, сбрасываем is_main у всех предыдущих каверов $photo = $event->sender; if ($photo->is_main) { Photo::resetIsMain($photo->artist_id); } }); Event::on(Photo::className(), Photo::EVENT_BEFORE_DELETE, function ($event) { // если удаляется основной кавер, вместо него основным становится следующий по очереди $photo = $event->sender; if ($photo->is_main) { $newMainPhoto = $photo->artist->getPhotos()->andWhere(['is_main' => 0])->orderBy('id')->limit(1)->one(); if ($newMainPhoto) { $newMainPhoto->is_main = 1; $newMainPhoto->save(); } } }); Event::on(Photo::className(), Photo::EVENT_BEFORE_DELETE, function ($event) { $event->sender->file->delete(); });