Exemple #1
0
 /**
  * @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']);
 }
Exemple #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdphoto0()
 {
     return $this->hasOne(Photo::className(), ['idphoto' => 'idphoto']);
 }
Exemple #4
0
 public function getPhotos()
 {
     return $this->hasOne(Photo::className(), ['parent_id' => 'id']);
 }
Exemple #5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPhotos()
 {
     return $this->hasMany(Photo::className(), ['uploadUserId' => 'id']);
 }
Exemple #6
0
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();
});