Caut să modific un formular de adăugare a nodului, până acum am adăugat un câmp personal „link” pentru a fi afișat ca buton pentru a adăuga un alt tip de nod dacă utilizatorul dorește, acel link are acest cod în hook_form_alter
, prind o valoare dintr-o altă selecție mai devreme și trec acea valoare rutei mele::
$selected_advertiser = isset($form_state->getUserInput()['field_advertiser'])? $form_state->getUserInput()['field_advertiser']: "0";
$url = Url::fromRoute('product.product_form', ['advertiser' => $selected_advertiser]);
$form['product_modal'] = [
'#type' => 'link',
'#name' => 'product_modal',
'#title' => t('Produs nou'),
'#url' => $url,
'#attributes' => [
'clasa' => [
„utilizați-ajax”,
'buton',
],
'data-dialog-type' => 'modal',
'data-dialog-options' => '{"width":800, "height": 500}',
'disable-refocus' => adevărat,
'style' => 'display: inline-block',
],
„#greutate” => 5,
];
rutare.yml
product.product_form:
cale: /product/product_form/{advertiser}
implicite:
_controller: „\Drupal\my_module\Controller\mycontrollerController::openModalProduct”
_title: „Pop-up pentru formularul de produs”
cerinte:
_permission: „administrați configurația site-ului”
deci prima dată când rulează, setează $selected_advertiser la „0”, dar data viitoare se setează corect la orice id-ul pe care l-am selectat din opțiunea de selectare anterioară, dar ruta către buton este încă potrivită ca valoare implicită „0”, depanatorul meu afișează noua rută corectă cu noul ID corect, dar butonul de formular nu este, presupun că acest lucru are legătură cu modificările nedeclarate ale formei sau ceva de genul acesta?