diff --git a/core/modules/migrate/src/Plugin/migrate/source/SqlBase.php b/core/modules/migrate/src/Plugin/migrate/source/SqlBase.php index 214a599ab1..ae219be893 100644 --- a/core/modules/migrate/src/Plugin/migrate/source/SqlBase.php +++ b/core/modules/migrate/src/Plugin/migrate/source/SqlBase.php @@ -29,11 +29,12 @@ * joined. Using expressions in the query may result in column aliases in the * JOIN clause which would be invalid SQL. If you run into this, set * ignore_map to TRUE. - * - conditions: (optional) Conditions that should be included in the query. + * - conditions: (optional) Conditions to add to the query. * This should be in array format with each array item providing values for * field, value (optional) and operator (optional). Defaults to an empty * array. If value is not defined, defaults to NULL. If operator is not * defined, defaults to '='. + * * Example: * @code * source: @@ -131,7 +132,7 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition // Verify conditions configuration. $this->configuration['conditions'] = $this->configuration['conditions'] ?? []; if (!is_array($this->configuration['conditions'])) { - throw new \InvalidArgumentException('Source "conditions" should be an array of conditions including field, value (optional), and operator (optional) values.'); + throw new \InvalidArgumentException('Source 'conditions' should be an array of conditions including field, value (optional), and operator (optional) values.'); } foreach ($this->configuration['conditions'] as $condition) { if (!is_array($condition) || !isset($condition['field'])) { @@ -141,7 +142,7 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition // Verify joins configuration. $this->configuration['joins'] = $this->configuration['joins'] ?? []; if (!is_array($this->configuration['joins'])) { - throw new \InvalidArgumentException('Source "joins" should be an array of conditions including table, alias and condition.'); + throw new \InvalidArgumentException('Source 'joins' should be an array of conditions including table, alias and condition.'); } foreach ($this->configuration['joins'] as $join) { if (!is_array($join) || !isset($join['table']) || !isset($join['alias']) || !isset($join['condition'])) { @@ -272,10 +273,10 @@ protected function select($table, $alias = NULL, array $options = []) { } /** - * Adds tags, metadata, and conditions to the query. + * Adds tags, metadata, and configured conditions and joins to the query. * * @return \Drupal\Core\Database\Query\SelectInterface - * The query with additional tags, metadata, and conditions. + * The query with additional tags, metadata, and configured conditions and joins. */ protected function prepareQuery() { $this->query = clone $this->query(); @@ -283,12 +284,12 @@ protected function prepareQuery() { $this->query->addTag('migrate_' . $this->migration->id()); $this->query->addMetaData('migration', $this->migration); - // Add conditions to the query. + // Add any configured conditions. foreach ($this->configuration['conditions'] as $condition) { $this->query->condition($condition['field'], $condition['value'] ?? NULL, $condition['operator'] ?? '='); } - // Add joins to the query. + // Add any configured conditions. foreach ($this->configuration['joins'] as $join) { $this->query->join($join['table'], $join['alias'], $join['condition']); }