Рейтинг:-2

Поле отправки формы недоступно в действии формы

флаг in

У меня есть следующий обработчик отправки формы.

функция mymod_form_submit(&$form, FormStateInterface $form_state) {
  $ka_selected = $form_state->getValue('ka_types');
  \Drupal::state()->set('ka_types', $ka_selected);
  вернуть $ka_selected;
}

Он возвращает ka_types значение поля. я хочу использовать $ka_selected в пользовательском коде действия.

выполнение публичной функции (ContentEntityInterface $entity = NULL) {
    //Чтение всех полей из сущности
    $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(); **//здесь возникла ошибка**
    дд($ка);
}

Я могу читать другие объекты представления, но не только это поле.

Как я могу использовать значение $ka_selected в моем пользовательском действии?

Rainer Feike avatar
флаг in
Не могли бы вы уточнить - я думаю, что в Drupal 9 нет hook_form_submit? И почему вы храните свое значение в состоянии, а затем ожидаете его в сущности?
Jiah avatar
флаг in
В Drupal 9 есть hook_form_submit, и я могу идеально сбросить туда выбранные значения. Просто эти значения не передаются методу выполнения в пользовательском действии.
apaderno avatar
флаг us
Drupal никогда не использовал [`hook_form_submit()`](https://api.drupal.org/api/drupal/9.1.x/search/hook_submit_form). Обработчик отправки формы не является крючком. То, что хранится в элементе формы, не обязательно является полем сущности. Я мог бы добавить элемент формы в форму редактирования объекта, и его значение не будет заканчиваться полем объекта.
apaderno avatar
флаг us
Кроме того, обработчик отправки формы не возвращает никакого значения. Даже если бы он вернул значение, это значение было бы удалено из Drupal.
Рейтинг:0
флаг in

Хорошо, я могу найти ответ по ссылке ниже: https://www.drupal.org/forum/support/module-development-and-code-questions/2021-07-04/read-view-row-entities-and-create-a#comment-14154305

выполнение публичной функции (ContentEntityInterface $entity = NULL) {
    //Чтение всех полей из сущности
    $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');
    дд($ка);
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.