分類参照(オートコンプリート)フィールドのある段落があり、プログラムでパラグラフアイテムを作成するときに、このフィールドにデータを入力したいと考えています。このフィールドで[参照エンティティが存在しない場合は作成する]オプションをオンにしました。
私はこのコードを使用していますが、Term :: create(可能な場合)なしでそれを行うための詳細情報を見つける方法がわかりません。
use Drupal\node\Entity\Node;
use Drupal\paragraphs\Entity\Paragraph;
foreach ($field_value as $creator_type => $creator_name) {
$paragraph = Paragraph::create(['type' => '_zotero_ref_creators']);
//text field
$paragraph->set('field_nom_prenom_createur', $creator_name);
//taxo reference field
$paragraph->set('field_type_createurs', $creator_type);
//$paragraph->isNew();
$paragraph->save();
$paragraphn_field_value = array(
'target_id' => $paragraph->id(),
'target_revision_id' => $paragraph->getRevisionId(),
);
$node_reference->set('field_liste_contrib', $paragraphn_field_value);
}
最初に、すでに作成されているノードをロードします。次に、前と同じように段落を作成しますが、分類用語には「target_id」を追加し、値には用語IDを選択します。ノードからの段落タイプのフィールドに段落値を設定します。また、ノードを保存する必要があります。
$node = Node::load($nid);
$paragraph = Paragraph::create([
'type' => 'gallery_image',
'field_type_createurs' => ['target_id' => $value],
]);
$paragraph->save();
$current[] = [
'target_id' => $paragraph->id(),
'target_revision_id' =>$paragraph->getRevisionId(),
];
$node->set('your_field', $current);
$node->save();
変数$ valueは用語IDです。
お役に立てれば幸いです。
これがシンクするのにしばらく時間がかかりました。ノード上に段落エンティティを作成すると考えると、Paragraph::create
。最初に考えていたのはParagraph::create
段落タイプを作成するのと同じように、もちろん、すでに作成済みです。
@OPTASYのコードの大部分が繰り返されているいくつかのサンプルコードを次に示します。すべてのデータは無害化され、うまくいけば、キーはどのフィールドがいつ参照されるかを明確に示します。
$node = Node::load($nid);
$current = [];
$paragraph = Paragraph::create([
'type' => 'my_paragraph_type',
'field_from_my_paragraph_type' => ['target_id' => 1]
]);
$paragraph->save();
$current[] = [
'target_id' => $paragraph->id(),
'target_revision_id' => $paragraph->getRevisionId(),
];
$node->set('field_from_my_content_type', $current);
$node->save();