本文整理汇总了PHP中Doctrine\DBAL\Schema\ForeignKeyConstraint类的典型用法代码示例。如果您正苦于以下问题:PHP ForeignKeyConstraint类的具体用法?PHP ForeignKeyConstraint怎么用?PHP ForeignKeyConstraint使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ForeignKeyConstraint类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: acceptForeignKey
/**
* {@inheritdoc}
*/
public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)
{
if (strlen($fkConstraint->getName()) == 0) {
throw SchemaException::namedForeignKeyRequired($localTable, $fkConstraint);
}
$this->constraints->attach($fkConstraint, $localTable);
}
开发者ID:alvarobfdev,项目名称:applog,代码行数:10,代码来源:DropSchemaSqlCollector.php
示例2: testIntersectsIndexColumns
/**
* @group DBAL-1062
*
* @dataProvider getIntersectsIndexColumnsData
*/
public function testIntersectsIndexColumns(array $indexColumns, $expectedResult)
{
$foreignKey = new ForeignKeyConstraint(array('foo', 'bar'), 'foreign_table', array('fk_foo', 'fk_bar'));
$index = $this->getMockBuilder('Doctrine\\DBAL\\Schema\\Index')->disableOriginalConstructor()->getMock();
$index->expects($this->once())->method('getColumns')->will($this->returnValue($indexColumns));
$this->assertSame($expectedResult, $foreignKey->intersectsIndexColumns($index));
}
开发者ID:selimcr,项目名称:servigases,代码行数:12,代码来源:ForeignKeyConstraintTest.php
示例3: acceptForeignKey
/**
* @param Table $localTable
* @param ForeignKeyConstraint $fkConstraint
*/
public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)
{
if (strlen($fkConstraint->getName()) == 0) {
throw SchemaException::namedForeignKeyRequired($localTable, $fkConstraint);
}
$this->_constraints[] = $this->_platform->getDropForeignKeySQL($fkConstraint->getQuotedName($this->_platform), $localTable->getQuotedName($this->_platform));
}
开发者ID:MarS2806,项目名称:Zend-Framework--Doctrine-ORM--PHPUnit--Ant--Jenkins-CI--TDD-,代码行数:11,代码来源:DropSchemaSqlCollector.php
示例4: acceptForeignKey
/**
* @param Table $localTable
* @param ForeignKeyConstraint $fkConstraint
*/
public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)
{
if ($this->_addExplicitIndexForForeignKey) {
$columns = $fkConstraint->getColumns();
if ($localTable->columnsAreIndexed($columns)) {
return;
}
$localTable->addIndex($columns);
}
}
开发者ID:jacques-sounvi,项目名称:addressbook,代码行数:14,代码来源:FixSchema.php
示例5: acceptForeignKey
/**
* {@inheritdoc}
*/
public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)
{
// The table may already be deleted in a previous
// RemoveNamespacedAssets#acceptTable call. Removing Foreign keys that
// point to nowhere.
if (!$this->schema->hasTable($fkConstraint->getForeignTableName())) {
$localTable->removeForeignKey($fkConstraint->getName());
return;
}
$foreignTable = $this->schema->getTable($fkConstraint->getForeignTableName());
if (!$foreignTable->isInDefaultNamespace($this->schema->getName())) {
$localTable->removeForeignKey($fkConstraint->getName());
}
}
开发者ID:Kevin-ZK,项目名称:vaneDisk,代码行数:17,代码来源:RemoveNamespacedAssets.php
示例6: _addForeignKeyConstraint
/**
* @param ForeignKeyConstraint $constraint
*/
protected function _addForeignKeyConstraint(ForeignKeyConstraint $constraint)
{
$constraint->setLocalTable($this);
if (strlen($constraint->getName())) {
$name = $constraint->getName();
} else {
$name = $this->_generateIdentifierName(array_merge((array) $this->getName(), $constraint->getLocalColumns()), "fk", $this->_getMaxIdentifierLength());
}
$name = strtolower($name);
$this->_fkConstraints[$name] = $constraint;
}
开发者ID:andreia,项目名称:doctrine,代码行数:14,代码来源:Table.php
示例7: diffForeignKey
/**
* @param \Doctrine\DBAL\Schema\ForeignKeyConstraint $key1
* @param \Doctrine\DBAL\Schema\ForeignKeyConstraint $key2
*
* @return boolean
*/
public function diffForeignKey(ForeignKeyConstraint $key1, ForeignKeyConstraint $key2)
{
if (array_map('strtolower', $key1->getUnquotedLocalColumns()) != array_map('strtolower', $key2->getUnquotedLocalColumns())) {
return true;
}
if (array_map('strtolower', $key1->getUnquotedForeignColumns()) != array_map('strtolower', $key2->getUnquotedForeignColumns())) {
return true;
}
if ($key1->getUnqualifiedForeignTableName() !== $key2->getUnqualifiedForeignTableName()) {
return true;
}
if ($key1->onUpdate() != $key2->onUpdate()) {
return true;
}
if ($key1->onDelete() != $key2->onDelete()) {
return true;
}
return false;
}
开发者ID:kirkbauer2,项目名称:kirkxc,代码行数:25,代码来源:Comparator.php
示例8: getGenerateConstraintForeignKeySql
public function getGenerateConstraintForeignKeySql(ForeignKeyConstraint $fk)
{
$quotedForeignTable = $fk->getQuotedForeignTableName($this->_platform);
return 'ALTER TABLE test ADD CONSTRAINT FOREIGN KEY (fk_name) ' . 'REFERENCES ' . $quotedForeignTable . ' (id) CONSTRAINT constraint_fk';
}
开发者ID:josemalonsom,项目名称:ifx4dd,代码行数:5,代码来源:InformixPlatformTest.php
示例9: getAdvancedForeignKeyOptionsSQL
/**
* {@inheritDoc}
*/
public function getAdvancedForeignKeyOptionsSQL(\Doctrine\DBAL\Schema\ForeignKeyConstraint $foreignKey)
{
$query = '';
if ($foreignKey->hasOption('match')) {
$query .= ' MATCH ' . $foreignKey->getOption('match');
}
$query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey);
return $query;
}
开发者ID:tamboer,项目名称:LaravelOctober,代码行数:12,代码来源:MySqlPlatform.php
示例10: getAdvancedForeignKeyOptionsSQL
/**
* {@inheritDoc}
*/
public function getAdvancedForeignKeyOptionsSQL(\Doctrine\DBAL\Schema\ForeignKeyConstraint $foreignKey)
{
$query = '';
if ($foreignKey->hasOption('match')) {
$query .= ' MATCH ' . $foreignKey->getOption('match');
}
$query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey);
if ($foreignKey->hasOption('deferrable') && $foreignKey->getOption('deferrable') !== false) {
$query .= ' DEFERRABLE';
} else {
$query .= ' NOT DEFERRABLE';
}
if ($foreignKey->hasOption('feferred') && $foreignKey->getOption('feferred') !== false || $foreignKey->hasOption('deferred') && $foreignKey->getOption('deferred') !== false) {
$query .= ' INITIALLY DEFERRED';
} else {
$query .= ' INITIALLY IMMEDIATE';
}
return $query;
}
开发者ID:cuppyzh,项目名称:go_laundry,代码行数:22,代码来源:PostgreSqlPlatform.php
示例11: getForeignKeyBaseDeclarationSQL
/**
* Obtain DBMS specific SQL code portion needed to set the FOREIGN KEY constraint
* of a field declaration to be used in statements like CREATE TABLE.
*
* @param ForeignKeyConstraint $foreignKey
* @return string
*/
public function getForeignKeyBaseDeclarationSQL(ForeignKeyConstraint $foreignKey)
{
$sql = '';
if (strlen($foreignKey->getName())) {
$sql .= 'CONSTRAINT ' . $foreignKey->getQuotedName($this) . ' ';
}
$sql .= 'FOREIGN KEY (';
if (count($foreignKey->getLocalColumns()) == 0) {
throw new \InvalidArgumentException("Incomplete definition. 'local' required.");
}
if (count($foreignKey->getForeignColumns()) == 0) {
throw new \InvalidArgumentException("Incomplete definition. 'foreign' required.");
}
if (strlen($foreignKey->getForeignTableName()) == 0) {
throw new \InvalidArgumentException("Incomplete definition. 'foreignTable' required.");
}
$sql .= implode(', ', $foreignKey->getLocalColumns()) . ') REFERENCES ' . $foreignKey->getForeignTableName() . ' (' . implode(', ', $foreignKey->getForeignColumns()) . ')';
return $sql;
}
开发者ID:pollux1er,项目名称:dlawebdev2,代码行数:26,代码来源:AbstractPlatform.php
示例12: _addForeignKeyConstraint
/**
* @param ForeignKeyConstraint $constraint
*
* @return void
*/
protected function _addForeignKeyConstraint(ForeignKeyConstraint $constraint)
{
$constraint->setLocalTable($this);
if (strlen($constraint->getName())) {
$name = $constraint->getName();
} else {
$name = $this->_generateIdentifierName(array_merge((array) $this->getName(), $constraint->getLocalColumns()), "fk", $this->_getMaxIdentifierLength());
}
$name = $this->normalizeIdentifier($name);
$this->_fkConstraints[$name] = $constraint;
// add an explicit index on the foreign key columns. If there is already an index that fulfils this requirements drop the request.
// In the case of __construct calling this method during hydration from schema-details all the explicitly added indexes
// lead to duplicates. This creates computation overhead in this case, however no duplicate indexes are ever added (based on columns).
$indexName = $this->_generateIdentifierName(array_merge(array($this->getName()), $constraint->getColumns()), "idx", $this->_getMaxIdentifierLength());
$indexCandidate = $this->_createIndex($constraint->getColumns(), $indexName, false, false);
foreach ($this->_indexes as $existingIndex) {
if ($indexCandidate->isFullfilledBy($existingIndex)) {
return;
}
}
$this->_addIndex($indexCandidate);
$this->implicitIndexes[$this->normalizeIdentifier($indexName)] = $indexCandidate;
}
开发者ID:BusinessCookies,项目名称:CoffeeMachineProject,代码行数:28,代码来源:Table.php
示例13: getAdvancedForeignKeyOptionsSQL
/**
* Returns the FOREIGN KEY query section dealing with non-standard options
* as MATCH, INITIALLY DEFERRED, ON UPDATE, ...
*
* @param \Doctrine\DBAL\Schema\ForeignKeyConstraint $foreignKey The foreign key definition.
*
* @return string
*/
public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)
{
$query = '';
if ($this->supportsForeignKeyOnUpdate() && $foreignKey->hasOption('onUpdate')) {
$query .= ' ON UPDATE ' . $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onUpdate'));
}
if ($foreignKey->hasOption('onDelete')) {
$query .= ' ON DELETE ' . $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onDelete'));
}
return $query;
}
开发者ID:BozzaCoon,项目名称:SPHERE-Framework,代码行数:19,代码来源:AbstractPlatform.php
示例14: createForeignKeyReplacement
/**
* Creates a foreign index replacement, which has quoted column names.
*
* @param ForeignKeyConstraint $fk
*
* @return ForeignKeyConstraint
*/
private function createForeignKeyReplacement(ForeignKeyConstraint $fk)
{
return new ForeignKeyConstraint($this->quoteIdentifiers($fk->getLocalColumns()), $this->platform->quoteIdentifier($fk->getForeignTableName()), $this->quoteIdentifiers($fk->getForeignColumns()), $this->platform->quoteIdentifier($fk->getName()), $fk->getOptions());
}
开发者ID:digilist,项目名称:snakedumper,代码行数:11,代码来源:IdentifierQuoter.php
示例15: getCreateForeignKeySQL
/**
* @param ForeignKeyConstraint $foreignKey
* @param Table|string $table
*
* @return string
*/
public function getCreateForeignKeySQL(ForeignKeyConstraint $foreignKey, $table)
{
$columns = $foreignKey->getColumns();
$column = reset($columns);
$column = $table->getColumn($column);
$sql = array();
if ($column->hasCustomSchemaOption('definedIn') and $column->getCustomSchemaOption('definedIn') === 'link') {
$sql = $this->_getCreateColumnSQL($foreignKey->getLocalTableName(), $column->getName(), $column->toArray());
}
return $sql;
}
开发者ID:mihai-stancu,项目名称:orientdb-orm,代码行数:17,代码来源:OrientDBPlatform.php
示例16: checkForeignKeyConstraint
/**
* Do checks for foreignKey constraints.
*
* @param ForeignKeyConstraint $foreignKeyConstraint
* @param IgnoredChange $ignoredChange
*
* @return boolean
*/
protected function checkForeignKeyConstraint(ForeignKeyConstraint $foreignKeyConstraint, IgnoredChange $ignoredChange)
{
// Not needed to be implemented yet
if ($ignoredChange->getPropertyName() !== $foreignKeyConstraint->getName()) {
return false;
}
return false;
}
开发者ID:zomars,项目名称:bolt,代码行数:16,代码来源:DiffUpdater.php
示例17: getForeignKeyDeclarationSQL
/**
* {@inheritDoc}
*/
public function getForeignKeyDeclarationSQL(ForeignKeyConstraint $foreignKey)
{
return parent::getForeignKeyDeclarationSQL(new ForeignKeyConstraint($foreignKey->getQuotedLocalColumns($this), str_replace('.', '__', $foreignKey->getQuotedForeignTableName($this)), $foreignKey->getQuotedForeignColumns($this), $foreignKey->getName(), $foreignKey->getOptions()));
}
开发者ID:betes-curieuses-design,项目名称:ElieJosiePhotographie,代码行数:7,代码来源:SqlitePlatform.php
示例18: checkForeignKeyConstraint
/**
* Do checks for foreignKey constraints.
*
* @param ForeignKeyConstraint $foreignKeyConstraint
* @param array $alterData
*
* @return boolean
*/
protected function checkForeignKeyConstraint(ForeignKeyConstraint $foreignKeyConstraint, array $alterData)
{
// Not needed to be implemented yet
if ($alterData['propertyName'] !== $foreignKeyConstraint->getName()) {
return false;
}
return false;
}
开发者ID:somekoala,项目名称:bolt,代码行数:16,代码来源:DiffUpdater.php
示例19: acceptForeignKey
/**
* {@inheritdoc}
*/
public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)
{
$this->output .= $this->createNodeRelation($fkConstraint->getLocalTableName() . ":col" . current($fkConstraint->getLocalColumns()) . ":se", $fkConstraint->getForeignTableName() . ":col" . current($fkConstraint->getForeignColumns()) . ":se", array('dir' => 'back', 'arrowtail' => 'dot', 'arrowhead' => 'normal'));
}
开发者ID:BozzaCoon,项目名称:SPHERE-Framework,代码行数:7,代码来源:Graphviz.php
示例20: getAdvancedForeignKeyOptionsSQL
/**
* {@inheritdoc}
*/
public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)
{
$referentialAction = null;
if ($foreignKey->hasOption('onDelete')) {
$referentialAction = $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onDelete'));
}
return $referentialAction ? ' ON DELETE ' . $referentialAction : '';
}
开发者ID:butonic,项目名称:dbal,代码行数:11,代码来源:OraclePlatform.php
注:本文中的Doctrine\DBAL\Schema\ForeignKeyConstraint类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论