Tôi đang tìm cách sửa đổi biểu mẫu thêm nút, cho đến nay tôi đã thêm "liên kết" trường cá nhân để hiển thị dưới dạng nút để thêm loại nút khác nếu người dùng muốn, liên kết đó có mã này trong hook_form_alter
, tôi đang bắt một giá trị từ một lựa chọn khác trước đó và chuyển giá trị đó cho tuyến đường của tôi ::
$selected_advertiser = isset($form_state->getUserInput()['field_advertiser'])? $form_state->getUserInput()['field_advertiser'] : "0";
$url = Url::fromRoute('product.product_form', ['advertiser' => $sselected_advertiser]);
$form['product_modal'] = [
'#type' => 'liên kết',
'#name' => 'product_modal',
'#title' => t('Sản phẩm mới'),
'#url' => $url,
'#thuộc tính' => [
'lớp học' => [
'sử dụng-ajax',
'cái nút',
],
'data-dialog-type' => 'modal',
'data-dialog-options' => '{"width":800, "height": 500}',
'vô hiệu hóa lấy nét lại' => đúng,
'style'=>'display: inline-block',
],
"#cân nặng" => 5,
];
định tuyến.yml
sản phẩm.product_form:
đường dẫn: /product/product_form/{advertiser}
mặc định:
_controller: '\Drupal\my_module\Controller\mycontrollerController::openModalProduct'
_title: 'Popup cho form sản phẩm'
yêu cầu:
_permission: 'quản lý cấu hình trang web'
vì vậy, lần đầu tiên nó chạy, nó đặt $selected_advertiser thành "0" nhưng lần sau nó đặt đúng cho bất kỳ id nào tôi đã chọn từ tùy chọn chọn trước đó, nhưng tuyến đường tới nút vẫn khớp với giá trị mặc định là "0", trình gỡ lỗi của tôi đang hiển thị đúng tuyến đường mới với id mới chính xác nhưng nút biểu mẫu thì không, tôi đoán điều này có liên quan gì đó đến những thay đổi không xác định trong biểu mẫu hoặc đại loại như thế?