Puncte:0

Mesajele de stare nu se afișează

drapel us

Am un controler care gestionează trimiterea unui formular de resetare a parolei. Totul funcționează bine, cu excepția setării mesajelor. Am încercat să modific și mesajul din fișierul .module fără succes. A funcționat pe Drupal 8, dar după migrarea la Drupal 9 nu mai funcționează. Iată codul:

<?php

spațiu de nume Drupal\custom_form_save\Controller;

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

clasa ResetPasswordSendController extinde ControllerBase {

  funcția publică resetpasswordsend(){

    $static_functions = new StaticController();
    $rute = $static_functions->urlmanagerwebsite();
    
    $session = \Drupal::service('session');
    dacă (!$session->isStarted()) {
      $session->migrate();
    }

    $gazdă = \Drupal::request()->getSchemeAndHttpHost();
    $nume = $_POST['email'];
    $langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
    $users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('mail' => $name));
    dacă (!gol ($utilizatori)) {
      $cont = reset($utilizatori);
      $mail = _user_mail_notify('resetarea parolei', $cont, $langcode);
      \Drupal::messenger()->addMessage('Wir haben eine Anleitung zum Zurücksetzen des Passworts an deine registererte E-Mail-Adresse gesendet.'); //NU FUNCȚIONEAZĂ
      $răspuns = new RedirectResponse($host . $routes['resetpassword']);
      $răspuns->trimite();
      Ieșire;
    }

    $addmessage = $nume . 'wird nicht als e-mail-Adresse erkannt.';
    $this->messenger()->addMessage($addmessage); //NU FUNCȚIONEAZĂ
    $session->set('messagescustom', $addmessage); //NU FUNCȚIONEAZĂ
    \Drupal::messenger()->addMessage('Die eingegebenen E-Mail Adresse stimmen nicht überein.'); //NU FUNCȚIONEAZĂ
    $răspuns = new RedirectResponse($host . $routes['resetpassword']);
    $răspuns->trimite();
    Ieșire;
  }
}

Tema nu ar trebui să fie problema, deoarece pe fiecare altă pagină mesajele funcționează.

drapel fr
Vedeți https://drupal.stackexchange.com/questions/138697/what-function-method-can-i-use-to-redirect-users-to-a-different-page/303653#303653
4uk4 avatar
drapel cn
Ai încercat să „return $response;” și nu să trimiți și să ieși?
Jaypan avatar
drapel de
Pentru redirecționarea de la un controler, puteți utiliza return `$this->response($route=name);`. Poate asta va ajuta. https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Controller%21ControllerBase.php/function/ControllerBase%3A%3Aredirect/9.3.x
drapel us
@anonymous: Mulțumesc că a rezolvat problema!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.