示例#1
0
 public static function generateFilename()
 {
     while (true) {
         $name = RandomFilename::generate('jpg');
         $path = substr($name, 0, 2) . '/' . $name;
         if (!BattleImage::findOne(['filename' => $path])) {
             return $path;
         }
     }
 }
示例#2
0
 public function getBattleImageResult()
 {
     return $this->hasOne(BattleImage::className(), ['battle_id' => 'id'])->andWhere(['type_id' => BattleImageType::ID_RESULT]);
 }
 protected function toImage(Battle $battle, $imageTypeId, $attr)
 {
     if ($this->isTest) {
         return null;
     }
     if ($this->{$attr} == '' && !$this->{$attr} instanceof UploadedFile) {
         return null;
     }
     $o = new BattleImage();
     $o->battle_id = $battle->id;
     $o->type_id = $imageTypeId;
     $o->filename = BattleImage::generateFilename();
     return $o;
 }
示例#4
0
 public function getLatestBattleResultImage()
 {
     return $this->hasOne(BattleImage::className(), ['battle_id' => 'id'])->viaTable('battle', ['user_id' => 'id'], function ($query) {
         $query->innerJoin('battle_image', 'battle.id = battle_image.battle_id AND battle_image.type_id = :type', [':type' => BattleImageType::ID_RESULT]);
         $query->orderBy('{{battle}}.[[id]] DESC');
         $query->limit(1);
     })->andWhere(['battle_image.type_id' => BattleImageType::ID_RESULT]);
 }
示例#5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getBattleImages()
 {
     return $this->hasMany(BattleImage::className(), ['type_id' => 'id']);
 }