本文整理汇总了PHP中Propel\Generator\Model\ForeignKey::getForeignColumnObjects方法的典型用法代码示例。如果您正苦于以下问题:PHP ForeignKey::getForeignColumnObjects方法的具体用法?PHP ForeignKey::getForeignColumnObjects怎么用?PHP ForeignKey::getForeignColumnObjects使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Propel\Generator\Model\ForeignKey
的用法示例。
在下文中一共展示了ForeignKey::getForeignColumnObjects方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testForeignKeyIsForeignPrimaryKey
public function testForeignKeyIsForeignPrimaryKey()
{
$database = $this->getDatabaseMock('bookstore');
$platform = $this->getPlatformMock();
$foreignTable = $this->getTableMock('authors');
$localTable = $this->getTableMock('books', ['platform' => $platform, 'database' => $database]);
$idColumn = $this->getColumnMock('id');
$authorIdColumn = $this->getColumnMock('author_id');
$database->expects($this->any())->method('getTable')->with($this->equalTo('authors'))->will($this->returnValue($foreignTable));
$foreignTable->expects($this->once())->method('getPrimaryKey')->will($this->returnValue([$idColumn]));
$foreignTable->expects($this->any())->method('getColumn')->with($this->equalTo('id'))->will($this->returnValue($idColumn));
$localTable->expects($this->any())->method('getColumn')->with($this->equalTo('author_id'))->will($this->returnValue($authorIdColumn));
$fk = new ForeignKey();
$fk->setTable($localTable);
$fk->setForeignTableCommonName('authors');
$fk->addReference('author_id', 'id');
$fkMapping = $fk->getColumnObjectsMapping();
$this->assertTrue($fk->isForeignPrimaryKey());
$this->assertCount(1, $fk->getForeignColumnObjects());
$this->assertSame($authorIdColumn, $fkMapping[0]['local']);
$this->assertSame($idColumn, $fkMapping[0]['foreign']);
$this->assertSame($idColumn, $fk->getForeignColumn(0));
}
示例2: getForeignKeyDDL
public function getForeignKeyDDL(ForeignKey $fk)
{
if ($fk->isSkipSql() || $fk->isPolymorphic()) {
return;
}
$pattern = 'CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s)';
$script = sprintf($pattern, $this->quoteIdentifier($fk->getName()), $this->getColumnListDDL($fk->getLocalColumnObjects()), $this->quoteIdentifier($fk->getForeignTableName()), $this->getColumnListDDL($fk->getForeignColumnObjects()));
if ($fk->hasOnUpdate() && $fk->getOnUpdate() != ForeignKey::SETNULL) {
$script .= ' ON UPDATE ' . $fk->getOnUpdate();
}
if ($fk->hasOnDelete() && $fk->getOnDelete() != ForeignKey::SETNULL) {
$script .= ' ON DELETE ' . $fk->getOnDelete();
}
return $script;
}
示例3: getForeignKeyDDL
public function getForeignKeyDDL(ForeignKey $fk)
{
if ($fk->isSkipSql() || $fk->isPolymorphic()) {
return;
}
$pattern = "CONSTRAINT %s\n FOREIGN KEY (%s) REFERENCES %s (%s)";
$script = sprintf($pattern, $this->quoteIdentifier($fk->getName()), $this->getColumnListDDL($fk->getLocalColumnObjects()), $this->quoteIdentifier($fk->getForeignTableName()), $this->getColumnListDDL($fk->getForeignColumnObjects()));
if ($fk->hasOnDelete()) {
$script .= "\n ON DELETE " . $fk->getOnDelete();
}
return $script;
}
示例4: getForeignKeyDDL
public function getForeignKeyDDL(ForeignKey $fk)
{
if ($fk->isSkipSql() || !$this->foreignKeySupport) {
return;
}
$pattern = "FOREIGN KEY (%s) REFERENCES %s (%s)";
$script = sprintf($pattern, $this->getColumnListDDL($fk->getLocalColumnObjects()), $this->quoteIdentifier($fk->getForeignTableName()), $this->getColumnListDDL($fk->getForeignColumnObjects()));
if ($fk->hasOnUpdate()) {
$script .= "\n ON UPDATE " . $fk->getOnUpdate();
}
if ($fk->hasOnDelete()) {
$script .= "\n ON DELETE " . $fk->getOnDelete();
}
return $script;
}