/** * {@inheritdoc} */ public function save(WritableCriteriaInterface $criteria, $dataOrObject) { $event = $this->getEvent(); $event->setCriteria($criteria); $event->setData($dataOrObject); $results = $this->getEventManager()->trigger(ModelEvent::EVENT_SAVE_PRE, $event, function ($r) { return is_int($r); }); if ($results->stopped()) { $last = $results->last(); if (null === $last || is_int($last)) { $event->setResult($last); return $last; } } $event->setResult(parent::save($event->getCriteria(), $event->getData())); $results = $this->getEventManager()->trigger(ModelEvent::EVENT_SAVE_POST, $event, function ($r) { return is_int($r); }); if ($results->stopped()) { $last = $results->last(); if (null === $last || is_int($last)) { $event->setResult($last); } } return $event->getResult(); }