/** * Fill entity instance fields from row column values according to entity value attributes. * * @param mixed $instance Entity instance * @param TableMetadata $metadata * @param array $row Database results row */ protected function fillEntityFieldValues($instance, TableMetadata $metadata, array $row) { foreach ($row as $columnName => $columnValue) { // If database row has aliased field column if ($metadata->isColumnExists($columnName)) { $columnName = $metadata->getTableColumnAlias($columnName); // Store attribute value $instance->{$columnName} = $columnValue; } } // FIXME: Old activerecord pattern behavior $instance->id = (int) $row[$metadata->primaryField]; // FIXME: Old activerecord pattern behavior $instance->attached = true; // Call handler for object filling $instance->filled(); }
/** @see ArrayAccess::offsetExists() */ public function offsetExists($offset) { return property_exists($this, $offset) || $this->metadata->isColumnExists($offset); }