Beispiel #1
0
 /**
  * Перед сохранением документа выставляем
  * ему необходимую позицию, инкрементируя последнюю
  * позицию из текущей директории
  * @param bool $insert
  * @return bool
  */
 public function beforeSave($insert)
 {
     if (parent::beforeSave($insert)) {
         if ($this->isNewRecord && !$this->position) {
             $model = self::find()->select(['position'])->where(['parent_id' => $this->parent_id])->orderBy(['position' => SORT_DESC])->one();
             $this->position = $model && $model->position ? $model->position + 1 : 1;
         }
         // При смене шаблона удаляем значения полей от старого шаблона
         if (!$this->isNewRecord && $this->getOldAttribute('template_id') != $this->template_id) {
             ValueNumeric::deleteAll(['document_id' => $this->id]);
             ValueString::deleteAll(['document_id' => $this->id]);
             ValueText::deleteAll(['document_id' => $this->id]);
             ValueDate::deleteAll(['document_id' => $this->id]);
         }
         return true;
     }
     return false;
 }