/** * @see ArrayAccess::offsetGet() * @throws \InvalidArgumentException */ public function offsetGet($offset) { if ($this->metadata->isColumnExists($offset)) { $fieldName = $this->metadata->getTableColumnAlias($offset); return $this->{$fieldName}; } return $this->{$offset}; }
/** * 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(); }