web-dev-qa-db-ja.com

プログラムで段落に画像フィールドを追加するにはどうすればよいですか?

プログラムで画像フィールドの値を段落に追加しようとしています。

画像のフィールド値は以下の通りです

Array (
  [target_id] => 28
  [alt] => test images
  [title] =>
  [width] => 1440
  [height] => 557
)

これは、画像フィールドの値を設定する方法です。

$paragraph->set('field_image',  $para_array);

画像フィールドが設定されていません。私はどこで間違っているのですか?それを実装する方法は何ですか?

1
Aditya Joshi

完全な配列を設定しないでください。画像フィールドを設定するには、target_idを渡すだけです。

use Drupal\paragraphs\Entity\Paragraph;

$paragraph = Paragraph::load($paragraph_id);
$paragraph->set('field_image',  $para_array['target_id']);
$paragraph->save();
1
Ajay Reddy

フィールドをPHP配列のように処理して、画像を追加する(置換しない)ことができます。

use Drupal\paragraphs\Entity\Paragraph;

  $paragraph = Paragraph::load($paragraph_id);
  $paragraph->field_image[] = [
    'target_id' => $fid,
    'alt' => $alt,
    'title' => $title,
  ];
  $paragraph->save();
1
4k4

あなたはコードを試します。

    $images = [
      'target_id' => 1,
      'alt' => '',
      'title' => '',
      'width'=>1440,
      'height'=>557
    ];
    $paragraph = Paragraph::create([
      'type' => 'paragraph_type',
      'field_images' => $images
    ]);
    $paragraph->save();
0
vinhdv