ฉันมีตัวควบคุมที่จัดการการส่งแบบฟอร์มการรีเซ็ตรหัสผ่าน ทุกอย่างทำงานได้ดียกเว้นการตั้งค่าข้อความ ฉันได้พยายามแก้ไขข้อความในไฟล์ .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();
ทางออก;
}
}
ธีมไม่ควรเป็นปัญหา เพราะในหน้าอื่นๆ ทุกข้อความกำลังทำงานอยู่