当前位置: 首页>>代码示例>>PHP>>正文


PHP xmldb_index::setHints方法代码示例

本文整理汇总了PHP中xmldb_index::setHints方法的典型用法代码示例。如果您正苦于以下问题:PHP xmldb_index::setHints方法的具体用法?PHP xmldb_index::setHints怎么用?PHP xmldb_index::setHints使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xmldb_index的用法示例。


在下文中一共展示了xmldb_index::setHints方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: invoke


//.........这里部分代码省略.........
         // Check that all the fields in belong to the table
         foreach ($fieldsarr as $field) {
             if (!$table->getField($field)) {
                 $errors[] = $this->str['fieldsnotintable'];
                 break;
             }
         }
         // Check that there isn't any key using exactly the same fields
         $tablekeys = $table->getKeys();
         if ($tablekeys) {
             foreach ($tablekeys as $tablekey) {
                 $keyfieldsarr = $tablekey->getFields();
                 // Compare both arrays, looking for differences
                 $diferences = array_merge(array_diff($fieldsarr, $keyfieldsarr), array_diff($keyfieldsarr, $fieldsarr));
                 if (empty($diferences)) {
                     $errors[] = $this->str['fieldsusedinkey'];
                     break;
                 }
             }
         }
         // Check that there isn't any index using exactly the same fields
         $tableindexes = $table->getIndexes();
         if ($tableindexes) {
             foreach ($tableindexes as $tableindex) {
                 // Skip checking against itself
                 if ($indexparam == $tableindex->getName()) {
                     continue;
                 }
                 $indexfieldsarr = $tableindex->getFields();
                 // Compare both arrays, looking for differences
                 $diferences = array_merge(array_diff($fieldsarr, $indexfieldsarr), array_diff($indexfieldsarr, $fieldsarr));
                 if (empty($diferences)) {
                     $errors[] = $this->str['fieldsusedinindex'];
                     break;
                 }
             }
         }
     }
     $hintsarr = array();
     foreach (explode(',', $hints) as $hint) {
         $hint = preg_replace('/[^a-z]/', '', $hint);
         if ($hint === '') {
             continue;
         }
         $hintsarr[] = $hint;
     }
     if (!empty($errors)) {
         $tempindex = new xmldb_index($name);
         $tempindex->setUnique($unique);
         $tempindex->setFields($fieldsarr);
         $tempindex->setHints($hintsarr);
         // Prepare the output
         $o = '<p>' . implode(', ', $errors) . '</p>
               <p>' . $tempindex->readableInfo() . '</p>';
         $o .= '<a href="index.php?action=edit_index&amp;index=' . $index->getName() . '&amp;table=' . $table->getName() . '&amp;dir=' . urlencode(str_replace($CFG->dirroot, '', $dirpath)) . '">[' . $this->str['back'] . ']</a>';
         $this->output = $o;
     }
     // Continue if we aren't under errors
     if (empty($errors)) {
         // If there is one name change, do it, changing the prev and next
         // attributes of the adjacent fields
         if ($indexparam != $name) {
             $index->setName($name);
             if ($index->getPrevious()) {
                 $prev = $table->getIndex($index->getPrevious());
                 $prev->setNext($name);
                 $prev->setChanged(true);
             }
             if ($index->getNext()) {
                 $next = $table->getIndex($index->getNext());
                 $next->setPrevious($name);
                 $next->setChanged(true);
             }
         }
         // Set comment
         $index->setComment($comment);
         // Set the rest of fields
         $index->setUnique($unique);
         $index->setFields($fieldsarr);
         $index->setHints($hintsarr);
         // If the hash has changed from the old one, change the version
         // and mark the structure as changed
         $index->calculateHash(true);
         if ($oldhash != $index->getHash()) {
             $index->setChanged(true);
             $table->setChanged(true);
             // Recalculate the structure hash
             $structure->calculateHash(true);
             $structure->setVersion(userdate(time(), '%Y%m%d', 99, false));
             // Mark as changed
             $structure->setChanged(true);
         }
         // Launch postaction if exists (leave this here!)
         if ($this->getPostAction() && $result) {
             return $this->launch($this->getPostAction());
         }
     }
     // Return ok if arrived here
     return $result;
 }
开发者ID:evltuma,项目名称:moodle,代码行数:101,代码来源:edit_index_save.class.php


注:本文中的xmldb_index::setHints方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。