Puncte:0

Actualizați nodul și toate traducerile în mod programatic

drapel gu

Trebuie să adaug etichete ca termeni de taxonomie la nodurile deja create în 7 limbi.

Daca fac asta:

$nod = Nod::load($nid);
$nod->set('field_tags', getTerms($terms));
$nod->salvare();

Doar nodul implicit în limba engleză este actualizat, cu toate acestea, toți termenii sunt creați în toate limbile.

getTerms() - este propria mea funcție, care obține ID-uri de termen și le creează dacă nu există.

Trebuie să actualizez toate traducerile nodurilor. Dar cum?

A incercat asta:

foreach (getLanguages() ca $key => $value) {
  $traducere_nod = $nod->addTranslation($cheie, $nod->toArray());
  $node_translation->set('field_tags', getTerms($terms));
  $traducere_nod->salvare();
}

Îmi dă această eroare: [eroare] Limbă de traducere nevalidă (ru) specificată. Dar limba „ru” este activă.

getLanguages() - returnează matricea tuturor limbilor. Aceeași funcție este folosită pentru a crea noduri și termeni și funcționează bine acolo.

Cum să Actualizați un nod și toate traducerile lui?

4uk4 avatar
drapel cn
Puteți adăuga locația în care apare eroarea și urmărirea stivei până la punctul în care se conectează cu codul dvs.? Doriți să actualizați traducerile atunci când codul dvs. adaugă traduceri. Cum ați configurat câmpul de referință și vocabularul? Ambele sunt traducibile?
Puncte:0
drapel gu

În sfârșit, am găsit soluția potrivită pentru a actualiza traducerea nodului în mod programatic:

if ($nod->hasTranslation($cheie)) {
  $traducere = $nod->getTranslation($cheie);
  $traducere->set('field_tags', $terms);
  $traducere->salvare();
}

$key - etichetă de limbă, de exemplu „en”, „es”, „ru”, etc.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.