Mi-am dat seama din sub_proces
documentația pluginului:
/**
* Chei de configurare disponibile:
*...
* - include_source: (opțional) Dacă este TRUE, toate configurațiile plugin-ului sursă și
* valorile vor fi copiate în rândul sub-procesat într-o nouă proprietate numită
* pentru valoarea de configurare source_key (vezi mai jos). Setarea implicită este FALSE.
* - cheie_sursă: (opțional) Dacă include_source este TRUE, aceasta
* este numele proprietății rândului subprocesat care va conține
* configurația și valorile sursei. Ignorat dacă include_source este
* FALS. Setarea implicită la „sursă” dacă nu este furnizată nicio valoare.
*/
Și l-a folosit ca:
field_cover_image:
- plugin: sub_process
sursa: field_cover_image
include_source: adevărat
cheie_sursă: rădăcină
proces:
target_id:
plugin: migration_lookup
sursa: target_id
migrare: migrate_media_image
sursă_ids:
migrate_media_image:
- target_id
- root/langcode # <- obține proprietatea din rândul rădăcină
Și constantele cauzei vor fi, de asemenea, disponibile:
migrate_media_image:
- target_id
- root/constants/default_language
O alternativă ar putea fi crearea proprietății de iterație ca valoare implicită:
plugin: sub_proces
sursa: field_cover_image
proces:
limba:
plugin: default_value
default_value: „en”
și referindu-se la aceasta ca proprietate de destinație a iterației curente @lang
:
limba:
plugin: default_value
default_value: „en”
target_id:
plugin: migration_lookup
sursa: target_id
sursă_ids:
migrate_media_image:
- target_id
- „@lang”
Tipurile de conținut/media se pot traduce, dar de fapt există o singură limbă și o pot „coda”, dar este mai bine să folosești valoarea dinamică.