Score:0

ข้อความสถานะไม่แสดง

ธง us

ฉันมีตัวควบคุมที่จัดการการส่งแบบฟอร์มการรีเซ็ตรหัสผ่าน ทุกอย่างทำงานได้ดียกเว้นการตั้งค่าข้อความ ฉันได้พยายามแก้ไขข้อความในไฟล์ .module ด้วยเช่นกันโดยไม่มีโชค มันทำงานบน Drupal 8 แต่หลังจากย้ายไปที่ drupal 9 มันก็ไม่ทำงานอีกต่อไป นี่คือรหัส:

<?php

เนมสเปซ Drupal\custom_form_save\Controller;

ใช้ Symfony\Component\HttpFoundation\Response;
ใช้ \Drupal\Core\Session\AccountProxyInterface;
ใช้ \Drupal\user\UserInterface;
ใช้ Drupal\Core\Image\ImageFactory;
ใช้ \Drupal\user\Entity\User;
ใช้ \Drupal\node\Entity\Node;
ใช้ \Drupal\file\Entity\File;
ใช้ \Drupal\Core\Entity\EntityManagerInterface;
ใช้ \Drupal\Core\Entity\EntityInterface;
ใช้ Drupal\comment\Entity\Comment;
ใช้ Drupal\Core\Controller\ControllerBase;
ใช้ Drupal\block\Entity\Block;
ใช้ Drupal\Core\Block\BlockBase;  
ใช้ Drupal\Core\Session\AccountInterface;
ใช้ Symfony\Component\HttpFoundation\Request;
ใช้ Drupal\node\NodeInterface;
ใช้ Drupal\image\Entity\ImageStyle;
ใช้ Symfony\Component\HttpFoundation\RedirectResponse;
ใช้ Drupal\user\PrivateTempStoreFactory;
ใช้ Symfony\Component\DependencyInjection\ContainerInterface;
ใช้ Drupal\custom_form_save\Controller\EmailsController
ใช้ Drupal\content_manager\Controller\StaticController
ใช้ Drupal\Core\Messenger\MessengerInterface;

คลาส ResetPasswordSendController ขยาย ControllerBase {

  ฟังก์ชั่นสาธารณะ resetpasswordsend () {

    $static_functions = ใหม่ StaticController();
    $เส้นทาง = $static_functions->urlmanagerwebsite();
    
    $session = \Drupal::service('เซสชั่น');
    ถ้า (!$session->isStarted()) {
      $session->migrate();
    }

    $host = \Drupal::request()->getSchemeAndHttpHost();
    $name = $_POST['อีเมล'];
    $langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
    $users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('mail' => $name));
    ถ้า (!empty($users)) {
      $บัญชี = รีเซ็ต ($ ผู้ใช้);
      $mail = _user_mail_notify('password_reset', $account, $langcode);
      \Drupal::messenger()->addMessage('Wir haben eine Anleitung zum Zurücksetzen des Passworts an deine registrierte E-Mail-Adresse gesendet.'); //ไม่ทำงาน
      $response = new RedirectResponse($host . $routes['resetpassword']);
      $response->send();
      ทางออก;
    }

    $addmessage = $ชื่อ ' ใช้เฉพาะอีเมล-ที่อยู่เท่านั้น';
    $this->messenger()->addMessage($addmessage); //ไม่ทำงาน
    $session->set('messagescustom', $addmessage); //ไม่ทำงาน
    \Drupal::messenger()->addMessage('Die eingegebenen E-Mail Adresse stimmen nicht überein.'); //ไม่ทำงาน
    $response = new RedirectResponse($host . $routes['resetpassword']);
    $response->send();
    ทางออก;
  }
}

ธีมไม่ควรเป็นปัญหา เพราะในหน้าอื่นๆ ทุกข้อความกำลังทำงานอยู่

fr flag
ดู https://drupal.stackexchange.com/questions/138697/what-function-method-can-i-use-to-redirect-users-to-a-different-page/303653#303653
4uk4 avatar
cn flag
คุณพยายาม `ส่งคืน $response;` และไม่ส่งและออกหรือไม่
Jaypan avatar
de flag
สำหรับการเปลี่ยนเส้นทางจากคอนโทรลเลอร์ คุณสามารถใช้ return `$this->response($route=name);` บางทีนั่นอาจช่วยได้ https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Controller%21ControllerBase.php/function/ControllerBase%3A%3Aredirect/9.3.x
us flag
@ไม่ระบุชื่อ: ขอบคุณที่แก้ไขปัญหา!

โพสต์คำตอบ

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