當前位置: 首頁>>代碼示例>>PHP>>正文


PHP SelectInterface::getTables方法代碼示例

本文整理匯總了PHP中Drupal\Core\Database\Query\SelectInterface::getTables方法的典型用法代碼示例。如果您正苦於以下問題:PHP SelectInterface::getTables方法的具體用法?PHP SelectInterface::getTables怎麽用?PHP SelectInterface::getTables使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Drupal\Core\Database\Query\SelectInterface的用法示例。


在下文中一共展示了SelectInterface::getTables方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: entityQueryAlter

 /**
  * {@inheritdoc}
  */
 public function entityQueryAlter(SelectInterface $query)
 {
     $tables = $query->getTables();
     $data_table = 'comment_field_data';
     if (!isset($tables['comment_field_data']['alias'])) {
         // If no conditions join against the comment data table, it should be
         // joined manually to allow node access processing.
         $query->innerJoin($data_table, NULL, "base_table.cid = {$data_table}.cid AND {$data_table}.default_langcode = 1");
     }
     // The Comment module doesn't implement any proper comment access,
     // and as a consequence doesn't make sure that comments cannot be viewed
     // when the user doesn't have access to the node.
     $node_alias = $query->innerJoin('node_field_data', 'n', '%alias.nid = ' . $data_table . '.entity_id AND ' . $data_table . ".entity_type = 'node'");
     // Pass the query to the node access control.
     $this->reAlterQuery($query, 'node_access', $node_alias);
     // Passing the query to node_query_node_access_alter() is sadly
     // insufficient for nodes.
     // @see SelectionEntityTypeNode::entityQueryAlter()
     if (!\Drupal::currentUser()->hasPermission('bypass node access') && !count(\Drupal::moduleHandler()->getImplementations('node_grants'))) {
         $query->condition($node_alias . '.status', 1);
     }
 }
開發者ID:davidsoloman,項目名稱:drupalconsole.com,代碼行數:25,代碼來源:CommentSelection.php

示例2: getTableAlias

 /**
  * Joins a field's table into a database select query.
  *
  * @param array $field
  *   The field information array. The "table" key should contain the table
  *   name to which a join should be made.
  * @param \Drupal\Core\Database\Query\SelectInterface $db_query
  *   The database query used.
  * @param bool $new_join
  *   (optional) If TRUE, a join is done even if the table was already joined
  *   to in the query.
  * @param string $join
  *   (optional) The join method to use. Must be a method of the $db_query.
  *   Normally, "join", "innerJoin", "leftJoin" and "rightJoin" are supported.
  *
  * @return string
  *   The alias for the field's table.
  */
 protected function getTableAlias(array $field, SelectInterface $db_query, $new_join = FALSE, $join = 'leftJoin') {
   if (!$new_join) {
     foreach ($db_query->getTables() as $alias => $info) {
       $table = $info['table'];
       if (is_scalar($table) && $table == $field['table']) {
         return $alias;
       }
     }
   }
   return $db_query->$join($field['table'], 't', 't.item_id = %alias.item_id');
 }
開發者ID:jkyto,項目名稱:agolf,代碼行數:29,代碼來源:Database.php

示例3:

 public function &getTables()
 {
     return $this->query->getTables();
 }
開發者ID:nstielau,項目名稱:drops-8,代碼行數:4,代碼來源:SelectExtender.php


注:本文中的Drupal\Core\Database\Query\SelectInterface::getTables方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。