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

19.08.2012

Существует два способа миграции данных в 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
Похожие записи

Добавить комментарий