/**
* Add oneToOne to owner (sourTable)
*/
$options = [
'extend' => [
'cascade' => $cascade,
'is_extend' => true,
'owner' => ExtendScope::OWNER_CUSTOM,
'without_default' => true,
'relation' => [
$relationKey => [
'cascade' => $cascade
]
]
]
];
$selfTableName = $sourceTable instanceof Table ? $sourceTable->getName() : $sourceTable;
$selfTable = $sourceTable instanceof Table ? $sourceTable : $schema->getTable($sourceTable);
$targetTableName = self::PARTNER_TABLE_NAME;
$targetTable = $schema->getTable(self::PARTNER_TABLE_NAME);
$targetColumnName = 'id';
// -- Add relation SourceTable
$selfTable->addColumn('partner_id', Type::INTEGER, ['notnull' => false]);
$selfTable->addIndex(['partner_id']);
$selfTable->addForeignKeyConstraint(
$targetTable,
['partner_id'],
['id'],
['onDelete' => 'SET NULL']
);
// -- Add relation - End
// -- Add EntityExtend Options
$options[ExtendOptionsManager::TARGET_OPTION] = [
'table_name' => $targetTableName,
'column' => $targetColumnName,
];
$options[ExtendOptionsManager::TYPE_OPTION] = RelationType::ONE_TO_ONE;
$this->extendOptionsManager->setColumnOptions(
$selfTableName,
'partner',
$options
);
// -- Add EntityExtend Options - End