Wie Inhalt von mehrsprachigem Textfield ändern
am 12.06.2019 - 12:09 Uhr in
Hallo zusammen,
in einem custom module gibt es eine Funktion hook__entity_insert(Drupal\Core\Entity\EntityInterface $entity) {...}
In dieser Funktion wird beim Anlegen eines Node der Wert eines Feldes gesetzt
$entity->field_custom_field->value = "some value";
Das funktioniert. Allerdings sind die nodes mehrsprachig. Es lässt sich also beispielsweise auch eine englische Übersetzung anlegen. In der englischen Übersetzung soll in "custom_field" ein anderer String gespeichert werden (eine sprachabhängige Kennziffer).
Mir ist nicht ganz klar, wie ich das bewerkstelligen kann. Hat jemand einen Tipp für mich, wie ich beispielsweise bei Anlage der englischen Übersetzung des Node für "custom_field" einen anderen String speichern kann?
Danke & Grüße
rhodes
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi,das müsste so oder
am 12.06.2019 - 14:19 Uhr
Hi,
das müsste so oder ähnlich funktionieren.
<?php
$entity->addTranslation('en');
$translation = $entity->getTranslation('en');
$translation->field_custom_field->value = 'my english value';
$translation->save();
$entity->save();
?>
Du müsstest aber mal schauen, ob das im
hook_entity_insert()
context so richtig funktioniert.Hi,
am 13.06.2019 - 12:10 Uhr
vielen Dank.
Ich habe jetzt hook_entity_translation_create genommen, und den Wert so gesetzt, wie von Dir vorgeschlagen. Hat prima funktioniert.
$translation->save ist gar nicht mehr nötig.