function ViewsData::fetchBaseTables

Same name in other branches
  1. 9 core/modules/views/src/ViewsData.php \Drupal\views\ViewsData::fetchBaseTables()
  2. 10 core/modules/views/src/ViewsData.php \Drupal\views\ViewsData::fetchBaseTables()
  3. 11.x core/modules/views/src/ViewsData.php \Drupal\views\ViewsData::fetchBaseTables()

Fetches a list of all base tables available.

Return value

array An array of base table data keyed by table name. Each item contains the following keys:

  • title: The title label for the base table.
  • help: The help text for the base table.
  • weight: The weight of the base table.

File

core/modules/views/src/ViewsData.php, line 299

Class

ViewsData
Class to manage and lazy load cached views data.

Namespace

Drupal\views

Code

public function fetchBaseTables() {
    $tables = [];
    foreach ($this->getAll() as $table => $info) {
        if (!empty($info['table']['base'])) {
            $tables[$table] = [
                'title' => $info['table']['base']['title'],
                'help' => !empty($info['table']['base']['help']) ? $info['table']['base']['help'] : '',
                'weight' => !empty($info['table']['base']['weight']) ? $info['table']['base']['weight'] : 0,
            ];
        }
    }
    // Sorts by the 'weight' and then by 'title' element.
    uasort($tables, function ($a, $b) {
        if ($a['weight'] != $b['weight']) {
            return $a['weight'] < $b['weight'] ? -1 : 1;
        }
        if ($a['title'] != $b['title']) {
            return $a['title'] < $b['title'] ? -1 : 1;
        }
        return 0;
    });
    return $tables;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.