I'm trying to migrate a link field with translation enabled.
It throws an error - Illegal offset type in ../modules/contrib/link/link.migrate.inc, line 108

This is my migrate constructor -

    $this->addFieldMapping('field_link', 'field_link_array');
    $this->addFieldMapping('field_link:title', 'field_link_title_array');
    $this->addFieldMapping('field_link:attributes', 'field_link_attributes_array');
    $this->addFieldMapping('field_link:language', 'field_link_language_array');

In my prepareRow() I'm assigning these array with corresponding language values.

public function prepareRow($row) {
    if (parent::prepareRow($row) === FALSE) {
      return FALSE;
    }
    
    $row->field_link_array = array('https://link/link-english','https://link/link-french');
    $row->field_link_title_array = array('link-english','link-french');
    $row->field_link_attributes_array= array('attribute-en','attribute-fr');
    $row->field_link_language_array= array('en','fr');
    
}

In link.migrate.inc when I checked line 108 -

$return[$language][$delta] = $item;

$language will be array and not the language code itself if the field supports multilingual.

Comments

wil2091 created an issue. See original summary.

wil2091’s picture

Version: 7.x-1.x-dev » 7.x-1.4