diff --git a/core/modules/views/src/Plugin/views/join/JoinPluginBase.php b/core/modules/views/src/Plugin/views/join/JoinPluginBase.php index 6811dcddc78daa3a05dd0355ccd3bd7d4814d841..e774164568655c7b3cb82093d6fa862e93079c30 100644 --- a/core/modules/views/src/Plugin/views/join/JoinPluginBase.php +++ b/core/modules/views/src/Plugin/views/join/JoinPluginBase.php @@ -266,7 +266,11 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition } $this->leftTable = $configuration['left_table']; - $this->leftField = $configuration['left_field']; + + if (!empty($configuration['left_field'])) { + $this->leftField = $configuration['left_field']; + } + $this->field = $configuration['field']; if (!empty($configuration['left_formula'])) { diff --git a/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php b/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php index af7003f85e665d2743222b5d557b4cb3fdf23642..e06bc51371a2aa39787904ea01c292ff581e70c1 100644 --- a/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php +++ b/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php @@ -205,6 +205,8 @@ public function testBasePlugin() { // Test that joins using 'left_formula' are properly built. $configuration['left_formula'] = 'MAX(views_test_data.uid)'; + // When 'left_formula' is present, 'left_field' is no longer required. + unset($configuration['left_field']); $join = $this->manager->createInstance('standard', $configuration); $table = ['alias' => 'users6']; $join->buildJoin($query, $table, $view->query);