web-dev-qa-db-ja.com

画像付きのノードをインポートする

1つの画像フィールドに画像を含むCSVからノードを作成しようとしています。 Drupal 8でMigrateモジュールを使用し、CSVから移行します。ノードへのデータは正常に機能し、画像のダウンロードとコピーは正常に機能しますが、ノードにはその画像がありません。画像はデータベースにも記録されていますが、ノードに接続されていません。私のコードがありますが、どこに問題があるのか​​誰かが知っていますか?アドバイスありがとうございます。画像フィールドは-field_uvodni_obrazekと呼ばれ、imはlast Drupal 8.4.2を使用します

product_data.YML-ノードのインポート

 dependencies:
      module:
        - migrate_source_csv
    id: product_data
    migration_group: product_migration
    migration_tags:
      - product
      - node
    label: Profile
    source:
      plugin: csv
      # Full path to the file.
      path: 'C:\Users\Hans\Documents\import.csv'
      # Column delimiter. Comma (,) by default.
      delimiter: '|'
      # Field Enclosure. Double quotation marks (") by default.
      Enclosure: '"'
      # The number of rows at the beginning which are not data.
      header_row_count: 1
      keys:
        - id
      column_names:
        0:
          id: 'id'
        1:
          kod: 'Kod zbozi'
        2:
          title: 'Nazev produktu'
        3:
          refstruct: 'Referenční struktura'
        4:
          kategorie: 'Kategorie produktu'
        5:
          objednani: 'Objednaci název'
        6:
          obrazek: 'Obrazek'
        7:
          popis: 'Krátky popis'
        8:
          rozsireny_popis: 'Rozsireny popis produktu'
    process:
      title: title
      field_produktove_cislo: kod
      field_objednaci_nazev: objednani
      field_refstruct: refstruct
      body/value: rozsireny_popis
      body/summary: popis
      field_kategorie_produktu:
        -
          plugin: explode
          delimiter: '/'
          source: kategorie
      field_uvodni_obrazek/target_id:
            plugin: migration_lookup
            migration: product_image
            source: obrazek
            no_stub: true
      field_uvodni_obrazek/alt:
         plugin: default_value
         default_value: title
      field_uvodni_obrazek/title:
        plugin: default_value
        default_value: title
      uid:
          plugin: default_value
          default_value: 1
      langcode:
               plugin: default_value
               default_value: 'cs'
      type:
        plugin: default_value
        default_value: produkt

    destination:
      plugin: 'entity:node'
      default_bundle: produkt
    migration_dependencies:
      optional:
        - product_image

product_image.YML-画像インポート

id: product_image
label: Import all product images.
migration_group: product_migration
migration_tags:
  - product
  - file
  - image
source:
  plugin: csv
  path: 'C:\Users\Hans\Documents\import.csv'
  delimiter: '|'
  Enclosure: '"'
  header_row_count: 1
  keys:
    - id
  column_names:
    0:
      id: 'id'
    6:
      filename: 'obrazek'
  constants:
    file_source_uri: public://import
    file_dest_uri: 'public://produkty/uvodni'
process:
  file_source:
    -
      plugin: concat
      delimiter: /
      source:
        - constants/file_source_uri
        - filename
    -
      plugin: urlencode
  file_dest:
    -
      plugin: concat
      delimiter: /
      source:
        - constants/file_dest_uri
        - filename
    -
      plugin: urlencode
  uid:
        plugin: default_value
        default_value: 1
  uri:
    plugin: file_copy
    source:
      - '@file_source'
      - '@file_dest'
  filename: filename
destination:
  plugin: 'entity:file'
1
Jan Vodvárka

画像とノード、参照の間に接続を作成する必要があります。 fidを設定する必要があります。 この例 を見てください。また、私の場合は本当に役に立ちました この投稿

1
Ismini