public static function HandlerBase::getTableJoin in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/views/HandlerBase.php \Drupal\views\Plugin\views\HandlerBase::getTableJoin()
Fetches a handler to join one table to a primary table from the data cache.
Parameters
string $table: The table to join from.
string $base_table: The table to join to.
Return value
\Drupal\views\Plugin\views\join\JoinPluginBase
Overrides ViewsHandlerInterface::getTableJoin
4 calls to HandlerBase::getTableJoin()
- ArgumentPluginBase::summaryNameField in core/
modules/ views/ src/ Plugin/ views/ argument/ ArgumentPluginBase.php - Add the name field, which is the field displayed in summary queries. This is often used when the argument is numeric.
- HandlerBase::getJoin in core/
modules/ views/ src/ Plugin/ views/ HandlerBase.php - Get the join object that should be used for this handler.
- ManyToOneHelper::addTable in core/
modules/ views/ src/ ManyToOneHelper.php - Add a table to the query.
- Sql::getJoinData in core/
modules/ views/ src/ Plugin/ views/ query/ Sql.php - Retrieve join data from the larger join data cache.
File
- core/
modules/ views/ src/ Plugin/ views/ HandlerBase.php, line 666
Class
- HandlerBase
- Base class for Views handler plugins.
Namespace
Drupal\views\Plugin\viewsCode
public static function getTableJoin($table, $base_table) {
$data = Views::viewsData()
->get($table);
if (isset($data['table']['join'][$base_table])) {
$join_info = $data['table']['join'][$base_table];
if (!empty($join_info['join_id'])) {
$id = $join_info['join_id'];
}
else {
$id = 'standard';
}
$configuration = $join_info;
// Fill in some easy defaults.
if (empty($configuration['table'])) {
$configuration['table'] = $table;
}
// If this is empty, it's a direct link.
if (empty($configuration['left_table'])) {
$configuration['left_table'] = $base_table;
}
if (isset($join_info['arguments'])) {
foreach ($join_info['arguments'] as $key => $argument) {
$configuration[$key] = $argument;
}
}
$join = Views::pluginManager('join')
->createInstance($id, $configuration);
return $join;
}
}