Điểm:0

trình xử lý gửi cụ thể đến biểu mẫu người dùng

lá cờ us

Tôi có trình xử lý gửi tới biểu mẫu người dùng. Nó chuyển hướng người dùng đến một trang cụ thể.

sử dụng Symfony\Component\HttpFoundation\RedirectResponse làm RedirectResponse;

/**
 * @tập tin
 * Móc mô-đun chính cho mô-đun Đề xuất EHESS 3.
 *
 * @DCG
 * Tệp này không còn cần thiết trong Drupal 8.
 * @xem https://www.drupal.org/node/2217931
 */
function ehess_propositions_3_form_alter(&$form, &$form_state, $form_id) {
  nếu ($form_id == 'user_form') {
    foreach (array_keys($form['actions']) as $action) {
      if (isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
        $form['actions'][$action]['#submit'][] = '_ehess_propositions_3_user_profile_submit';
      }
    }
  }
}

function _ehess_propositions_3_user_profile_submit($form, &$form_state) {
  $response = new RedirectResponse('/admin/content/regment/');
  $ phản hồi-> gửi();
}

Nhưng vấn đề là trình xử lý gửi được kích hoạt cho cả cập nhật người dùng và xóa người dùng. Điều đó chặn chuyển hướng đến trang "xác nhận xóa" của người dùng.

Có hành động cụ thể nào để chỉ cập nhật biểu mẫu người dùng và không xóa người dùng không?

4uk4 avatar
lá cờ cn
Bạn đang đính kèm trình xử lý gửi vào tất cả các nút gửi, bao gồm cả nút hủy. Nhân tiện, đừng gửi phản hồi, hãy thêm nó vào $form_state. Xem https://drupal.stackexchange.com/questions/5861/how-to-redirect-to-a-page-after-submitting-a-form
Frédéric Hébert avatar
lá cờ us
Nhưng không có gì trong ví dụ phân biệt giữa người dùng cập nhật và người dùng xóa. Đó là câu hỏi của tôi với hành động nào được đính kèm với trình xử lý? Có hành động "gửi cập nhật" như thế nào không?
Điểm:0
lá cờ cn

$action có thể là Gửi đixóa bỏ. Bạn không cần vòng lặp foreach nếu không muốn đính kèm trình xử lý gửi vào tất cả các nút gửi.

Thêm trực tiếp trình xử lý vào nút lưu:

function ehess_propositions_3_form_alter(&$form, &$form_state, $form_id) {
  nếu ($form_id == 'user_form') {
    $form['actions']['submit']['#submit'][] = '_ehess_propositions_3_user_profile_submit';
  }
}

Để biết cách chính xác để chuyển hướng trong một biểu mẫu, hãy xem https://drupal.stackexchange.com/a/191594/47547

Frédéric Hébert avatar
lá cờ us
cảm ơn thực sự. Rõ ràng bây giờ!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.