试图将附加到field_collection实体类型(Drupal 7)的分类标准参考字段迁移到附加到段落实体类型(Drupal 8.6)的实体参考字段中。
虽然看上去的基本任务一做,而迁移,但我无法找到如何做一个明确的参考。
id: d7_field_collection_field_name
label: My Field name
migration_tags:
- Drupal 7
migration_group: migrate_drupal_7
source:
plugin: d7_custom_source_plugin
process:
field_title:
plugin: get
source: field_title
field_job_category:
plugin: get
source: field_job_category
destination:
plugin: 'entity_reference_revisions:paragraph'
default_bundle: my_paragraphs_bundle
migration_dependencies:
required:
- upgrade_d7_field
- upgrade_d7_node_type
- upgrade_d7_field_collection_type
- upgrade_d7_field_instance
此处说明了迁移过程:https://www.mtech-llc.com/blog/ada-hernandez/migration-field-collection-d7-paragraphs-node-d8
因此,field_job_category无法正常工作。我在进程插件中尝试了很多方法而没有运气。例如,我曾经使用过:
field_job_category:
plugin: migration_lookup
migration: upgrade_d7_taxonomy_term_job_categories
source: term_id
然后尝试使用源代码,因为我正在使用Drupal 8.6
field_job_category:
plugin: migration_lookup
migration: upgrade_d7_taxonomy_term_job_categories
sources:
upgrade_d7_taxonomy_term_job_categories:
- term_id
我相信它的下field_job_category配置错误,但我无法弄清楚呢。
非常感谢您的帮助!
答案 0 :(得分:0)
这已经通过做两件事得到解决。
首先,在我的字段中使用 sub_process 流程插件。
field_job_category:
-
plugin: sub_process
source: field_job_category
process:
target_id: tid
最后,实现hook_migrate_prepare_row()以提供具有正确结构的数据,以供上述sub_process使用
$row->setSourceProperty($field_name, $new_value);
$ new_value应该是
Array
(
[0] => Array
(
[tid] => Term ID
)
)
希望这会有所帮助!干杯。