/** * {@inheritdoc} */ protected function normalizeDefinition() { $definition = parent::normalizeDefinition(); $definition[RecordEntity::PIVOT_COLUMNS] = []; foreach ($this->pivotSchema()->getColumns() as $column) { //Let's include pivot table columns, it will help many to many loaded to map data correctly $definition[RecordEntity::PIVOT_COLUMNS][] = $column->getName(); } //We must include pivot table database into data for easier access $definition[ORM::R_DATABASE] = $this->outerRecord()->getDatabase(); return $definition; }
/** * Normalize schema definition into light cachable form. * * @return array */ protected function normalizeDefinition() { $definition = parent::normalizeDefinition(); if ($this->getOuterKey() == $this->outerRecord()->getPrimaryKey()) { //Linked using primary key $definition[ORM::M_PRIMARY_KEY] = $this->getOuterKey(); } return $definition; }
/** * {@inheritdoc} */ protected function normalizeDefinition() { $definition = parent::normalizeDefinition(); $definition[static::RELATION_TYPE] = []; foreach ($this->outerRecords() as $record) { //We must remember how to relate morphed key value to outer record $definition[static::RELATION_TYPE][$record->getRole()] = $record->getName(); } return $definition; }