19 Mogę utworzyć węzeł za pomocą następującego kodu: $node = \Drupal::entityTypeManager()->getStorage('node')->create($array); Ale jeśli mam identyfikator węzła, jak mogę edytować węzeł? nodes 8 entities BOES źródło co chcesz edytować? które pole? Yusef Odpowiedzi: 23 Możesz wypróbować ten kod <?php use Drupal\node\Entity\Node; $node = Node::load($nid); //set value for field $node->body->value = 'body'; $node->body->format = 'full_html'; //field tag $node->field_tags = [1]; //field image $field_image = array( 'target_id' => $fileID, 'alt' => "My 'alt'", 'title' => "My 'title'", ); $node->field_image = $field_image; //save to update node $node->save(); MrD źródło Ta odpowiedź nie jest dobra, odpowiedź Ivan jest dobrą odpowiedzią Kevin 6 $node = \Drupal::entityTypeManager()->getStorage('node')->load($nid); kiamlaluno źródło i po modyfikacji, na przykład niestandardowe pole: es. field_mycustomfield ??? BOES, lub $node = \Drupal::entityManager()->getStorage('node')->load($nid); JF Kiwad 2 node_load jest przestarzały w Drupal 8.x, zostanie usunięty przed Drupal 9.0. Użyj \ Drupal \ node \ Entity \ Node :: load (). Zobacz https://api.drupal.org/api/drupal/core%21modules%21node%21node.module/function/node_load/8.3.x webdevfreak źródło 1 Do wykonania aktualizacji można użyć interfejsu API jednostki. $node = Node::load($id); if ($node instanceof NodeInterface) { try { $node->set('title', 'My Title'); $node->set('field_textfield', 'My textfield value'); $node->save(); } catch (\Exception $e) { watchdog_exception('myerrorid', $e); } } hugronaphor źródło 0 Stara metoda też działa dla mnie: $node=node_load($nid); print_r($node->body->format); $node->body->format='full_html'; print_r($node->body->format); $node->save(); Boris Ayupov źródło
23 Możesz wypróbować ten kod <?php use Drupal\node\Entity\Node; $node = Node::load($nid); //set value for field $node->body->value = 'body'; $node->body->format = 'full_html'; //field tag $node->field_tags = [1]; //field image $field_image = array( 'target_id' => $fileID, 'alt' => "My 'alt'", 'title' => "My 'title'", ); $node->field_image = $field_image; //save to update node $node->save(); MrD źródło Ta odpowiedź nie jest dobra, odpowiedź Ivan jest dobrą odpowiedzią Kevin 6 $node = \Drupal::entityTypeManager()->getStorage('node')->load($nid); kiamlaluno źródło i po modyfikacji, na przykład niestandardowe pole: es. field_mycustomfield ??? BOES, lub $node = \Drupal::entityManager()->getStorage('node')->load($nid); JF Kiwad 2 node_load jest przestarzały w Drupal 8.x, zostanie usunięty przed Drupal 9.0. Użyj \ Drupal \ node \ Entity \ Node :: load (). Zobacz https://api.drupal.org/api/drupal/core%21modules%21node%21node.module/function/node_load/8.3.x webdevfreak źródło 1 Do wykonania aktualizacji można użyć interfejsu API jednostki. $node = Node::load($id); if ($node instanceof NodeInterface) { try { $node->set('title', 'My Title'); $node->set('field_textfield', 'My textfield value'); $node->save(); } catch (\Exception $e) { watchdog_exception('myerrorid', $e); } } hugronaphor źródło 0 Stara metoda też działa dla mnie: $node=node_load($nid); print_r($node->body->format); $node->body->format='full_html'; print_r($node->body->format); $node->save(); Boris Ayupov źródło
6 $node = \Drupal::entityTypeManager()->getStorage('node')->load($nid); kiamlaluno źródło i po modyfikacji, na przykład niestandardowe pole: es. field_mycustomfield ??? BOES, lub $node = \Drupal::entityManager()->getStorage('node')->load($nid); JF Kiwad 2 node_load jest przestarzały w Drupal 8.x, zostanie usunięty przed Drupal 9.0. Użyj \ Drupal \ node \ Entity \ Node :: load (). Zobacz https://api.drupal.org/api/drupal/core%21modules%21node%21node.module/function/node_load/8.3.x webdevfreak źródło 1 Do wykonania aktualizacji można użyć interfejsu API jednostki. $node = Node::load($id); if ($node instanceof NodeInterface) { try { $node->set('title', 'My Title'); $node->set('field_textfield', 'My textfield value'); $node->save(); } catch (\Exception $e) { watchdog_exception('myerrorid', $e); } } hugronaphor źródło 0 Stara metoda też działa dla mnie: $node=node_load($nid); print_r($node->body->format); $node->body->format='full_html'; print_r($node->body->format); $node->save(); Boris Ayupov źródło
2 node_load jest przestarzały w Drupal 8.x, zostanie usunięty przed Drupal 9.0. Użyj \ Drupal \ node \ Entity \ Node :: load (). Zobacz https://api.drupal.org/api/drupal/core%21modules%21node%21node.module/function/node_load/8.3.x webdevfreak źródło
1 Do wykonania aktualizacji można użyć interfejsu API jednostki. $node = Node::load($id); if ($node instanceof NodeInterface) { try { $node->set('title', 'My Title'); $node->set('field_textfield', 'My textfield value'); $node->save(); } catch (\Exception $e) { watchdog_exception('myerrorid', $e); } } hugronaphor źródło
0 Stara metoda też działa dla mnie: $node=node_load($nid); print_r($node->body->format); $node->body->format='full_html'; print_r($node->body->format); $node->save(); Boris Ayupov źródło
Odpowiedzi:
Możesz wypróbować ten kod
źródło
źródło
$node = \Drupal::entityManager()->getStorage('node')->load($nid);
node_load jest przestarzały w Drupal 8.x, zostanie usunięty przed Drupal 9.0. Użyj \ Drupal \ node \ Entity \ Node :: load ().
Zobacz https://api.drupal.org/api/drupal/core%21modules%21node%21node.module/function/node_load/8.3.x
źródło
Do wykonania aktualizacji można użyć interfejsu API jednostki.
źródło
Stara metoda też działa dla mnie:
źródło