プログラムで画像フィールドの値を段落に追加しようとしています。
画像のフィールド値は以下の通りです
Array (
[target_id] => 28
[alt] => test images
[title] =>
[width] => 1440
[height] => 557
)
これは、画像フィールドの値を設定する方法です。
$paragraph->set('field_image', $para_array);
画像フィールドが設定されていません。私はどこで間違っているのですか?それを実装する方法は何ですか?
完全な配列を設定しないでください。画像フィールドを設定するには、target_idを渡すだけです。
use Drupal\paragraphs\Entity\Paragraph;
$paragraph = Paragraph::load($paragraph_id);
$paragraph->set('field_image', $para_array['target_id']);
$paragraph->save();
フィールドをPHP配列のように処理して、画像を追加する(置換しない)ことができます。
use Drupal\paragraphs\Entity\Paragraph;
$paragraph = Paragraph::load($paragraph_id);
$paragraph->field_image[] = [
'target_id' => $fid,
'alt' => $alt,
'title' => $title,
];
$paragraph->save();
あなたはコードを試します。
$images = [
'target_id' => 1,
'alt' => '',
'title' => '',
'width'=>1440,
'height'=>557
];
$paragraph = Paragraph::create([
'type' => 'paragraph_type',
'field_images' => $images
]);
$paragraph->save();