Je suis nouveau sur drupal 8. Je voudrais étendre le formulaire de connexion utilisateur en supprimant le champ nom d'utilisateur et en ajoutant le champ email. J'ai donc créé un module personnalisé, j'ai implémenté un Event Subscriber et l'a déclaré comme un service:
services:
mdmuser.route_subscriber:
class: Drupal\mdm_user\Routing\RouteSubscriber
tags:
- {name: event_subscriber }
Et voici ma classe RouteSubscriber
<?php
/**
* @file
* Contains \Drupal\mdm_user\Routing\RouteSubscriber.
*/
namespace Drupal\mdm_user\Routing;
use Drupal\Core\Routing\RouteSubscriberBase;
use Symfony\Component\Routing\RouteCollection;
/**
* Listens to the dynamic route events.
*/
class RouteSubscriber extends RouteSubscriberBase {
protected function alterRoutes(RouteCollection $collection) {
if ($route = $collection->get('user.login')) {
$route->setDefault('_form', '\Drupal\mdm_user\Form\UserLoginForm');
$collection->add('user.login', $route);
}
}
}
J'ai cette erreur quand je veux installer mon nouveau module:
ReflectionException: Class Drupal\mdm_user\Routing\RouteSubscriber does not exist in ReflectionClass->__construct() (line 31 of core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterEventSubscribersPass.php).
Toute idée est appréciée!
Merci
Ce doit être la structure du fichier. Vérifiez à nouveau qu'il se trouve dans /modules/custom/mdm_user/src/Routing/RouteSubscriber.php
De plus, dans votre classe, vous n'avez pas besoin d'ajouter à nouveau l'itinéraire, il est transmis par référence.
Vous pouvez supprimer
$collection->add('user.login', $route);
Ran dans le même problème. Cela a fini par être une erreur stupide dans mon espace de noms dans mon fichier RouteSubscriper.php. J'avais:
namespace Drupal\my_module\Routing\RouteSubscriber;
Quand cela aurait dû être:
namespace Drupal\my_module\Routing;
Si vous obtenez un message d'erreur au-dessus, je vous suggère de suivre les choses à vérifier,
J'ai l'approche de problème avec ci-dessous:
Essayez la commande en bash près du web/dir de drupal 'drupal gcon', voir aussi
J'espère que cela t'aides.
Codage heureux ....