public function test() { $subject = new ForeignKey(); $subject->setTableName('table1')->setColumnName('column1'); static::assertSame('table1', $subject->getTableName()); static::assertSame('column1', $subject->getColumnName()); }
/** * @param array $columnData * @return $this */ private function addForeignKey(array $columnData) { if (true === array_key_exists('foreign_key', $columnData)) { $foreignKey = new ForeignKey(); $foreignKey->setTableName($columnData['foreign_key']['table_name'])->setColumnName($columnData['foreign_key']['column_name']); $this->column->setForeignKey($foreignKey); } return $this; }
/** * @inheritdoc */ protected function setForeignKeys() { $statement = $this->connection->prepare('SELECT COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME ' . 'FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = :table AND REFERENCED_COLUMN_NAME IS NOT NULL'); $statement->setFetchMode(\PDO::FETCH_ASSOC); $statement->execute([':table' => $this->table->getName()]); foreach ($statement as $item) { foreach ($this->columns as $column) { if ($column->getName() === $item['COLUMN_NAME']) { $foreignKey = new ForeignKey(); $column->setForeignKey($foreignKey->setTableName($item['REFERENCED_TABLE_NAME'])->setColumnName($item['REFERENCED_COLUMN_NAME'])); } } } return $this; }
public function test() { $foreignKey = new ForeignKey(); $foreignKey->setTableName('table1')->setColumnName('column1'); $subject = new Column('name'); $subject->setForeignKey($foreignKey)->setTable(new Table('test_table')); static::assertSame('name', $subject->getName()); static::assertInstanceOf(ForeignKey::class, $subject->getForeignKey()); $subject->removeForeignKey(); static::assertSame(null, $subject->getForeignKey()); static::assertFalse($subject->isAutoIncrement()); $subject->setAutoIncrement(true); static::assertTrue($subject->isAutoIncrement()); static::assertSame('test_table', $subject->getTable()->getName()); }