Рейтинг:0

Создание опции ссылки в форме и изменение ее URL-адреса в форме alter hook

флаг us

Я пытаюсь изменить форму добавления узла, до сих пор я добавил личное поле «ссылка» для отображения в виде кнопки, чтобы добавить другой тип узла, если пользователь хочет, эта ссылка имеет этот код в hook_form_alter, я перехватываю значение из другого выбора ранее и передаю это значение моему маршруту ::

    $selected_advertiser = isset($form_state->getUserInput()['field_advertiser'])? $form_state->getUserInput()['field_advertiser'] : "0";
    $url = Url::fromRoute('product.product_form', ['advertiser' => $selected_advertiser]);
    $ форма ['product_modal'] = [
        '#тип' => 'ссылка',
        '#name' => 'product_modal',
        '#title' => t('Новый продукт'),
        '#url' => $url,
        '#атрибуты' => [
            'класс' => [
                'использовать-ajax',
                'кнопка',
            ],
            'тип диалога данных' => 'модальный',
            'data-dialog-options' => '{"ширина":800, "высота": 500}',
            'отключить-перефокусировку' => правда,
            'стиль' => 'отображение: встроенный блок',
        ],
        "#вес" => 5,
    ];

маршрутизация.yml

  product.product_form:
  путь: /product/product_form/{рекламодатель}
  значения по умолчанию:
    _controller: '\Drupal\my_module\Controller\mycontrollerController::openModalProduct'
    _title: 'Всплывающее окно для формы продукта'
  требования:
    _permission: «администрирование конфигурации сайта»

поэтому при первом запуске он устанавливает для $selected_advertiser значение «0», но в следующий раз правильно настраивается любой идентификатор, который я выбрал из предыдущей опции выбора, но маршрут к кнопке по-прежнему соответствует значению по умолчанию «0», мой отладчик показывает правильный новый маршрут с правильным новым идентификатором, но кнопка формы не отображается, я предполагаю, что это как-то связано с неустановленными изменениями в форме или что-то в этом роде?

Hodba Khalaf avatar
флаг eg
Почему бы не создать новое поле selected_advertiser и скрыть его, а затем использовать значение поля для изменения $URL?
Ernesto Alfredo avatar
флаг us
@HodbaKhalaf, я думаю, я понял идею, я думаю, выглядит хорошо, позвольте мне попробовать это

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

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