protected function onObjectSaved(Model $object) { if ($object->isNewRecord()) { // Assign an auto number as a unique identifier. $this->autoNumberCount++; $object->UniqueIdentifier = $this->autoNumberCount; } parent::onObjectSaved($object); }
protected function beforeDelete() { parent::beforeDelete(); foreach (Image::find(new Equals('GalleryID', $this->UniqueIdentifier)) as $image) { $image->delete(); } }
/** * Override this to make changes just before the model is committed to the repository during a save operation */ protected function beforeSave() { if ($this->isNewRecord()) { $this->PostedAt = new \DateTime(); } parent::beforeSave(); }
protected function beforeSave() { if ($this->isNewRecord()) { $this->DateCreated = "now"; } parent::beforeSave(); }
protected function beforeSave() { parent::beforeSave(); if ($this->isNewRecord()) { $this->DatePosted = new \DateTime(); } }
protected function beforeSave() { if ($this->isNewRecord()) { $this->DateCreated = new RhubarbDateTime("now"); } parent::beforeSave(); }
public static function find(Filter $filter = null) { $activeFilter = new Equals('Active', 1); if ($filter === null) { $filter = $activeFilter; } else { $filter = new AndGroup([$filter, $activeFilter]); } return parent::find($filter); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); Repository::setDefaultRepositoryClassName(MySql::class); self::SetDefaultConnectionSettings(); Log::DisableLogging(); $unitTestingSolutionSchema = new UnitTestingSolutionSchema(); $unitTestingSolutionSchema->checkModelSchemas(); // Make sure the test model objects have the any other repository disconnected. Model::deleteRepositories(); }
protected function setUp() { parent::setUp(); Application::current()->registerModule(new CommunicationsModule()); Application::current()->initialiseModules(); Model::clearAllRepositories(); CommunicationProcessor::setProviderClassName(EmailProvider::class, UnitTestingEmailProvider::class); Repository::setDefaultRepositoryClassName(Offline::class); Communication::clearObjectCache(); CommunicationItem::clearObjectCache(); }
public function testValidJsonTransform() { $company = new Company(); $company->CompanyName = "Gcd Technologies"; $company->CompanyData = $this->data; $company->save(); $params = MySql::getPreviousParameters(); $this->assertEquals($this->constraint, $params["CompanyData"]); Model::clearAllRepositories(); $company = new Company($company->UniqueIdentifier); $this->assertEquals($this->data, $company->CompanyData); }
public static function checkRecords($oldVersion, $newVersion) { parent::checkRecords($oldVersion, $newVersion); if ($newVersion == 2) { foreach (Gallery::find() as $gallery) { $i = 0; foreach (Image::find(new Equals('GalleryID', $gallery->GalleryID)) as $image) { $image->Order = $i++; $image->save(); } } } }
/** * Crafts and executes an SQL statement to insert the object into MySQL * * @param \Rhubarb\Stem\Models\Model $object */ private function insertObject(Model $object) { $schema = $this->schema; $changes = $object->takeChangeSnapshot(); $params = []; $columns = []; $sql = "INSERT INTO `{$schema->schemaName}`"; $schemaColumns = $schema->getColumns(); foreach ($changes as $columnName => $value) { $changeData = $changes; if (isset($schemaColumns[$columnName])) { $storageColumns = $schemaColumns[$columnName]->getStorageColumns(); $transforms = $this->columnTransforms[$columnName]; if ($transforms[1] !== null) { $closure = $transforms[1]; $transformedData = $closure($changes); if (is_array($transformedData)) { $changeData = $transformedData; } else { $changeData[$columnName] = $transformedData; } } foreach ($storageColumns as $storageColumnName => $storageColumn) { $value = isset($changeData[$storageColumnName]) ? $changeData[$storageColumnName] : null; $columns[] = "`" . $storageColumnName . "` = :" . $storageColumnName; if ($value === null) { $value = $storageColumn->defaultValue; } $params[$storageColumnName] = $value; } } } if (sizeof($columns) > 0) { $sql .= " SET " . implode(", ", $columns); } else { $sql .= " VALUES ()"; } $id = self::executeInsertStatement($sql, $params); $object[$object->getUniqueIdentifierColumnName()] = $id; }
protected function getPublicPropertyList() { $properties = parent::getPublicPropertyList(); $properties[] = "Surname"; return $properties; }
public final function deleteObject(Model $object) { if ($object->isNewRecord()) { return; } $this->onObjectDeleted($object); $this->deleteObjectFromCache($object); }