Esempio n. 1
0
 /**
  *  {@inheritdoc}
  *
  * @param string                      $eventType
  * @param \Phalcon\Mvc\ModelInterface $model
  */
 public function notify($eventType, ModelInterface $model)
 {
     if ($eventType == 'beforeDelete') {
         $options = $this->getOptions();
         $field = $options['field'];
         $value = $options['value'];
         $model->skipOperation(true);
         if ($model->readAttribute($field) === $value) {
             $model->appendMessage(new Message('Model was already deleted'));
             return false;
         }
         $this->fireEvent($model, 'beforeSoftDelete');
         $updateModel = clone $model;
         $updateModel->writeAttribute($field, $value);
         if (!$updateModel->update()) {
             foreach ($updateModel->getMessages() as $message) {
                 $model->appendMessage($message);
             }
             return false;
         }
         $model->writeAttribute($field, $value);
         if (isset($options['cascade']) && $options['cascade'] === true) {
             $this->cascadeDelete($model);
         }
         $this->fireEvent($model, 'afterSoftDelete');
     }
 }