Puncte:-2

Câmpul de trimitere a formularului nu este disponibil în acțiunea formularului

drapel in

Am următorul handler de trimitere a formularelor.

funcția mymod_form_submit(&$form, FormStateInterface $form_state) {
  $ka_selected = $form_state->getValue('ka_types');
  \Drupal::state()->set('ka_types', $ka_selected);
  returnează $ka_selected;
}

Acesta returnează ka_types valoarea câmpului. vreau sa folosesc $ka_selectat în codul de acțiune personalizat.

funcția publică execute(ContentEntityInterface $entity = NULL) {
    //Citește toate câmpurile de la entitate
    $comment = $entity->get('comment_body')->getValue();
    $file_uri = file_create_url($entity->field_attachment->entity->getFileUri());
    $file_name = $entity->field_attachment->entity->getFileName();
    $ka = $entity->ka_selected->entity->getValue(); **// eroare aruncată aici**
    dd($ka);
}

Pot citi alte entități de vizualizare, dar nu doar acest câmp.

Cum pot folosi valoarea lui $ka_selectat în acțiunea mea personalizată?

Rainer Feike avatar
drapel in
Ați putea vă rog să clarificați - cred că nu există hook_form_submit în Drupal 9? Și de ce vă stocați valoarea într-o stare și mai târziu o așteptați în entitate?
Jiah avatar
drapel in
Drupal 9 are hook_form_submit și pot arunca perfect valorile selectate acolo. Doar acele valori nu sunt transmise metodei execute în acțiunea personalizată
apaderno avatar
drapel us
Drupal nu a folosit niciodată [`hook_form_submit()`](https://api.drupal.org/api/drupal/9.1.x/search/hook_submit_form). Un handler de trimitere a formularelor nu este un cârlig. Ceea ce este stocat într-un element de formular nu este neapărat un câmp de entitate. Aș putea folosi adăugarea unui element de formular într-un formular de editare de entitate și valoarea acestuia nu se va termina într-un câmp de entitate.
apaderno avatar
drapel us
De asemenea, un handler de trimitere a formularelor nu returnează nicio valoare. Chiar dacă ar returna o valoare, acea valoare ar fi eliminată din Drupal.
Puncte:0
drapel in

Bine, reușesc să aflu răspunsul din linkul de mai jos: https://www.drupal.org/forum/support/module-development-and-code-questions/2021-07-04/read-view-row-entities-and-create-a#comment-14154305

funcția publică execute(ContentEntityInterface $entity = NULL) {
    //Citește toate câmpurile de la entitate
    $comment = $entity->get('comment_body')->getValue();
    $file_uri = file_create_url($entity->field_attachment->entity->getFileUri());
    $file_name = $entity->field_attachment->entity->getFileName();
    $ka = \Drupal::state()->get('ka_types');
    dd($ka);
}

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.