3 namespace Drupal\migrate_drupal\Plugin\migrate\source;
5 use Drupal\migrate\Row;
8 * Multiple variables source from database.
10 * Unlike the variable source plugin, this one returns one row per
14 * id = "variable_multirow"
17 class VariableMultiRow extends DrupalSqlBase {
22 public function query() {
23 return $this->select('variable', 'v')
24 ->fields('v', ['name', 'value'])
25 // Cast scalars to array so we can consistently use an IN condition.
26 ->condition('name', (array) $this->configuration['variables'], 'IN');
32 public function fields() {
34 'name' => $this->t('Name'),
35 'value' => $this->t('Value'),
42 public function prepareRow(Row $row) {
43 if ($value = $row->getSourceProperty('value')) {
44 $row->setSourceProperty('value', unserialize($value));
46 return parent::prepareRow($row);
52 public function getIds() {
53 $ids['name']['type'] = 'string';