/** * {@inheritDoc} */ public function getIdentifiers($onlyUnloaded = true) { if (true === $this->loaded) { return []; } return [$this->owner->getId()]; }
/** * Determines if a model is eligible for commit. * * @todo Does delete need to be here? * @param Model $model * @return bool */ protected function shouldCommit(Model $model) { $state = $model->getState(); return true === $state->is('dirty') || $state->is('new') || $state->is('deleting'); }
/** * Pushes a model into the memory cache. * * @param Model $model * @return self */ public function push(Model $model) { $this->models[$model->getType()][$model->getId()] = $model; return $this; }
/** * Sets a has-one relationship. * * @param string $key The relationship key (field) name. * @param Model|null $model The model to relate. * @return self */ protected function setHasOne($key, Model $model = null) { if (true === $this->isInverse($key)) { throw ModelException::cannotModifyInverse($this, $key); } if (null !== $model) { $this->validateRelSet($key, $model->getType()); } $this->touch(); $this->hasOneRelationships->set($key, $model); $this->doDirtyCheck(); return $this; }