Drupal 8:如何编辑段落字段值?
Drupal 8: How to edit Paragraph field value?
我想知道我是否可以设置一个段落的值。
在我的模块中,我使用了一个 entity_presave 函数,如果我尝试获取段落值,它可以正常工作,但如果我尝试设置或编辑一个值,它就无法正常工作。
function setParagraph($node)
{
$paragraph = $node->field_paragraphs->getValue();
// Loop through the result set.
foreach ($paragraph as $element) {
$p = \Drupal\paragraphs\Entity\Paragraph::load($element['target_id']);
$foo = $p->field_foo>value;
$bar = $p->field_bar->value;
`$foo and $bar are getting filled with the right values`
but if i want to set a value nothing will work
$p->set('field_foo', $bar); //not working
$p->field_foo = $bar; //not working
$p->field_foo->value = $bar; notworking
//$p->set('field_steamconnect', $steamconnect);
}
}
啊
$p->set('field_foo', $bar);
$p->save();
会起作用
use Drupal\node\Entity\Node;
use Drupal\paragraphs\Entity\Paragraph;
$p = Paragraph::Create();
$p->set('field_foo', [
'field_1' => 'xxx',
'field_2' => 'yyy',
]);
$p->save();
$node = Node::Create();
...
$node->set('field_paragraph', [
'target_id' => $p->id(),
'target_revision_id' => $p->getRevisionId(),
]);
$node->save();
我想知道我是否可以设置一个段落的值。 在我的模块中,我使用了一个 entity_presave 函数,如果我尝试获取段落值,它可以正常工作,但如果我尝试设置或编辑一个值,它就无法正常工作。
function setParagraph($node)
{
$paragraph = $node->field_paragraphs->getValue();
// Loop through the result set.
foreach ($paragraph as $element) {
$p = \Drupal\paragraphs\Entity\Paragraph::load($element['target_id']);
$foo = $p->field_foo>value;
$bar = $p->field_bar->value;
`$foo and $bar are getting filled with the right values`
but if i want to set a value nothing will work
$p->set('field_foo', $bar); //not working
$p->field_foo = $bar; //not working
$p->field_foo->value = $bar; notworking
//$p->set('field_steamconnect', $steamconnect);
}
}
啊
$p->set('field_foo', $bar);
$p->save();
会起作用
use Drupal\node\Entity\Node;
use Drupal\paragraphs\Entity\Paragraph;
$p = Paragraph::Create();
$p->set('field_foo', [
'field_1' => 'xxx',
'field_2' => 'yyy',
]);
$p->save();
$node = Node::Create();
...
$node->set('field_paragraph', [
'target_id' => $p->id(),
'target_revision_id' => $p->getRevisionId(),
]);
$node->save();