Я пытаюсь изменить форму добавления узла, до сих пор я добавил личное поле «ссылка» для отображения в виде кнопки, чтобы добавить другой тип узла, если пользователь хочет, эта ссылка имеет этот код в 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», мой отладчик показывает правильный новый маршрут с правильным новым идентификатором, но кнопка формы не отображается, я предполагаю, что это как-то связано с неустановленными изменениями в форме или что-то в этом роде?