xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Миграция данных в multi-value поля

Опубликовано в

Существует два способа миграции данных в multiple value поля.

Первый — указать разделитель значений поля с помощью метода MigrateFieldMapping::separator():

public function __construct($arguments) {
  ...
  $this->addFieldMapping('field_tags', 'tags')->separator(',');
}

Второй — в Migration::prepareRow() вручную заполнить поле значениями:

public function __construct($arguments) {
  ...
  $this->addFieldMapping('field_tags', 'tags');
}
 
public function prepareRow($row) {
  ...
  $row->tags = array('tag1', 'tag2', 'tag3');
}

Более сложный пример с составным полем:

public function __construct($arguments) {
  ...
  $this->addFieldMapping('field_images', 'images');
  $this->addFieldMapping('field_images:alt', 'images_alt');
  $this->addFieldMapping('field_images:title', 'images_title');
}
 
public function prepareRow($row) {
  ...
  $row->images = array('image1.jpg', 'image2.jpg', 'image3.jpg');
  $row->images_alt = array('Image 1 alt', 'Image 2 alt', 'Image 3 alt');
  $row->images_title = array('Image 1 title', 'Image 2 title', 'Image 3 title');
}

Подробнее.

Написанное актуально для Migrate 2.4
Похожие записи

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании