本文整理汇总了PHP中Index::isUnique方法的典型用法代码示例。如果您正苦于以下问题:PHP Index::isUnique方法的具体用法?PHP Index::isUnique怎么用?PHP Index::isUnique使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Index
的用法示例。
在下文中一共展示了Index::isUnique方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: computeDiff
/**
* Compute the difference between two index objects
*
* @param Index $fromIndex
* @param Index $toIndex
* @param boolean $caseInsensitive Whether the comparison is case insensitive.
* False by default.
*
* @return boolean false if the two indices are similar, true if they have differences
*/
public static function computeDiff(Index $fromIndex, Index $toIndex, $caseInsensitive = false)
{
// Check for removed index columns in $toIndex
$fromIndexColumns = $fromIndex->getColumns();
for ($i = 0; $i < count($fromIndexColumns); $i++) {
$indexColumn = $fromIndexColumns[$i];
if (!$toIndex->hasColumnAtPosition($i, $indexColumn, null, $caseInsensitive)) {
return true;
}
}
// Check for new index columns in $toIndex
$toIndexColumns = $toIndex->getColumns();
for ($i = 0; $i < count($toIndexColumns); $i++) {
$indexColumn = $toIndexColumns[$i];
if (!$fromIndex->hasColumnAtPosition($i, $indexColumn, null, $caseInsensitive)) {
return true;
}
}
// Check for difference in unicity
if ($fromIndex->isUnique() != $toIndex->isUnique()) {
return true;
}
return false;
}
示例2: diffIndex
/**
* Finds the difference between the indexes $index1 and $index2.
*
* Compares $index1 with $index2 and returns $index2 if there are any
* differences or false in case there are no differences.
*
* @param Index $index1
* @param Index $index2
* @return bool
*/
public function diffIndex(Index $index1, Index $index2)
{
if ($index1->isPrimary() != $index2->isPrimary()) {
return true;
}
if ($index1->isUnique() != $index2->isUnique()) {
return true;
}
// Check for removed index fields in $index2
$index1Columns = $index1->getColumns();
for ($i = 0; $i < count($index1Columns); $i++) {
$indexColumn = $index1Columns[$i];
if (!$index2->hasColumnAtPosition($indexColumn, $i)) {
return true;
}
}
// Check for new index fields in $index2
$index2Columns = $index2->getColumns();
for ($i = 0; $i < count($index2Columns); $i++) {
$indexColumn = $index2Columns[$i];
if (!$index1->hasColumnAtPosition($indexColumn, $i)) {
return true;
}
}
return false;
}
示例3: isDuplicate
/**
* Check if given Index is duplicate of this
*
* @param Index $index Index
*
* @return bool TRUE if duplicate, otherwise FALSE
*/
public function isDuplicate(Index $index)
{
/**
* Check if columns are the same
*/
$duplicate = $this->getColumns() === $index->getColumns();
/**
* If indices have different unique status they cant be duplicates
*/
if ($this->isUnique() !== $index->isUnique()) {
$duplicate = false;
}
/**
* If one of the indicies is the primary key they cant be duplicates
*/
if ($this->isPrimaryKey() === true || $index->isPrimaryKey() === true) {
$duplicate = false;
}
return $duplicate;
}
示例4: addIndexToModel
/**
* Adds index to table
* @param Index $index
*/
public function addIndexToModel($index)
{
$this->query('insert into [indexes] values( null, %s, %s, %s, %s)', $index->getName(), $index->getModel()->getTableName(), $index->getHash(), $index->isUnique());
PerfORMController::getBuilder()->createIndex($index);
}