diff --git a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php index 171a8d9..60b7769 100644 --- a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php +++ b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php @@ -848,9 +848,16 @@ protected function defaultDisplayOptions() { // Add a least one field so the view validates and the user has a preview. // The base field can provide a default in its base settings; otherwise, // choose the first field with a field handler. - $data = Views::viewsData()->get($this->base_table); + $default_table = $this->base_table; + $data = Views::viewsData()->get($default_table); if (isset($data['table']['base']['defaults']['field'])) { $default_field = $data['table']['base']['defaults']['field']; + // If the table for the default field is different to the base table, + // load the view table data for this table. + if (isset($data['table']['base']['defaults']['table']) && $data['table']['base']['defaults']['table'] != $default_table) { + $default_table = $data['table']['base']['defaults']['table']; + $data = Views::viewsData()->get($default_table); + } } else { foreach ($data as $default_field => $field_data) { @@ -860,7 +867,7 @@ protected function defaultDisplayOptions() { } } $display_options['fields'][$default_field] = array( - 'table' => $this->base_table, + 'table' => $default_table, 'field' => $default_field, 'id' => $default_field, 'plugin_id' => $data[$default_field]['field']['id'],