Tôi có một bộ điều khiển quản lý việc gửi biểu mẫu đặt lại mật khẩu. Mọi thứ hoạt động tốt, ngoại trừ cài đặt tin nhắn. Tôi cũng đã cố gắng thay đổi thông báo trong tệp .module mà không gặp may. Nó hoạt động trên Drupal 8, nhưng sau khi chuyển sang drupal 9 thì nó không hoạt động nữa. Đây là mã:
<?php
không gian tên Drupal\custom_form_save\Controller;
sử dụng Symfony\Thành phần\HttpFoundation\Response;
sử dụng \Drupal\Core\Session\AccountProxyInterface;
sử dụng \Drupal\user\UserInterface;
sử dụng Drupal\Core\Image\ImageFactory;
sử dụng \Drupal\user\Entity\User;
sử dụng \Drupal\node\Entity\Node;
sử dụng \Drupal\file\Entity\File;
sử dụng \Drupal\Core\Entity\EntityManagerInterface;
sử dụng \Drupal\Core\Entity\EntityInterface;
sử dụng Drupal\comment\Entity\Comment;
sử dụng Drupal\Core\Controller\ControllerBase;
sử dụng Drupal\block\Entity\Block;
sử dụng Drupal\Core\Block\BlockBase;
sử dụng Drupal\Core\Session\AccountInterface;
sử dụng Symfony\Thành phần\HttpFoundation\Request;
sử dụng Drupal\node\NodeInterface;
sử dụng Drupal\image\Entity\ImageStyle;
sử dụng Symfony\Thành phần\HttpFoundation\RedirectResponse;
sử dụng Drupal\user\PrivateTempStoreFactory;
sử dụng Symfony\Component\DependencyInjection\ContainerInterface;
sử dụng Drupal\custom_form_save\Controller\EmailsController;
sử dụng Drupal\content_manager\Controller\StaticController;
sử dụng Drupal\Core\Messenger\MessengerInterface;
lớp ResetPasswordSendController mở rộng ControllerBase {
chức năng công khai resetpasswordsend(){
$static_functions = bộ điều khiển tĩnh mới();
$routes = $static_functions->urlmanagerwebsite();
$session = \Drupal::service('session');
if (!$session->isStarted()) {
$session->di chuyển();
}
$host = \Drupal::request()->getSchemeAndHttpHost();
$name = $_POST['email'];
$langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
$users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('mail' => $name));
if (!empty($users)) {
$account = đặt lại($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.'); //KHÔNG LÀM VIỆC
$response = new RedirectResponse($host . $routes['resetpassword']);
$ phản hồi-> gửi();
lối ra;
}
$addmessage = $name . ' wird nicht als E-Mail-Adresse erkannt.';
$this->messenger()->addMessage($addmessage); //KHÔNG LÀM VIỆC
$session->set('messagescustom', $addmessage); //KHÔNG LÀM VIỆC
\Drupal::messenger()->addMessage('Die eingegebenen Địa chỉ E-Mail kích thích nicht überein.'); //KHÔNG LÀM VIỆC
$response = new RedirectResponse($host . $routes['resetpassword']);
$ phản hồi-> gửi();
lối ra;
}
}
Chủ đề không phải là vấn đề, bởi vì trên mọi trang khác, thông báo đang hoạt động.