Score:0

ตัวจัดการการส่งเฉพาะไปยังแบบฟอร์มผู้ใช้

ธง us

ฉันมีตัวจัดการการส่งไปยังแบบฟอร์มผู้ใช้ มันเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเฉพาะ

ใช้ Symfony\Component\HttpFoundation\RedirectResponse เป็น RedirectResponse

/**
 * @ไฟล์
 * ขอโมดูลหลักสำหรับโมดูล EHESS Propositions 3
 *
 *@ดีซีจี
 * ไฟล์นี้ไม่จำเป็นอีกต่อไปใน Drupal 8
 * @ดู https://www.drupal.org/node/2217931
 */
ฟังก์ชัน ehess_propositions_3_form_alter(&$form, &$form_state, $form_id) {
  ถ้า ($form_id == 'user_form') {
    foreach (array_keys($form['actions']) as $action) {
      ถ้า (isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
        $form['actions'][$action]['#submit'][] = '_ehess_propositions_3_user_profile_submit';
      }
    }
  }
}

ฟังก์ชัน _ehess_propositions_3_user_profile_submit($form, &$form_state) {
  $response = ใหม่ RedirectResponse('/admin/content/reglement/');
  $response->send();
}

แต่ปัญหาคือตัวจัดการการส่งถูกไล่ออกทั้งการอัปเดตผู้ใช้และการลบผู้ใช้ ที่บล็อกการเปลี่ยนเส้นทางไปยังหน้า "ยืนยันการลบ" ของผู้ใช้

มีการดำเนินการเฉพาะเพื่ออัปเดตแบบฟอร์มผู้ใช้เท่านั้นและไม่ลบผู้ใช้หรือไม่

4uk4 avatar
cn flag
คุณกำลังแนบตัวจัดการการส่งกับปุ่มส่งทั้งหมด รวมถึงปุ่มยกเลิก BTW ไม่ส่งการตอบกลับ เพิ่มไปที่ $form_state ดู https://drupal.stackexchange.com/questions/5861/how-to-redirect-to-a-page-after-submitting-a-form
Frédéric Hébert avatar
us flag
แต่ไม่มีอะไรในตัวอย่างที่แยกระหว่างผู้ใช้อัปเดตและลบผู้ใช้ นั่นคือคำถามของฉันกับการกระทำใดที่ติดอยู่กับตัวจัดการ มีการกระทำ "ส่งอัปเดต" เช่น ?
Score:0
ธง cn

$action ได้ ส่ง และ ลบ. คุณไม่จำเป็นต้องใช้ foreach วนซ้ำ หากคุณไม่ต้องการแนบตัวจัดการการส่งไปยังปุ่มส่งทั้งหมด

เพิ่มตัวจัดการลงในปุ่มบันทึกโดยตรง:

ฟังก์ชัน ehess_propositions_3_form_alter(&$form, &$form_state, $form_id) {
  ถ้า ($form_id == 'user_form') {
    $form['actions']['submit']['#submit'][] = '_ehess_propositions_3_user_profile_submit';
  }
}

สำหรับวิธีที่ถูกต้องในการเปลี่ยนเส้นทางในแบบฟอร์ม โปรดดูที่ https://drupal.stackexchange.com/a/191594/47547

Frédéric Hébert avatar
us flag
ขอบคุณจริงๆ ชัดเจนแล้ว!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา