Bonjour,
J'ai créé une fonction roles qui vient s'éxécuter après celle de la connexion car dans ma security.yaml j'emploie default_target_path.
form_login:
login_path: connexion
check_path: check
default_target_path: roles
une fois dans ma fonction roles :
/**
* @Route("/roles", name="roles")
*
*/
public function roles(UserRepository $repo) : Response
{
$user = $this->getUser();
$person = $repo->findOneBy(['id' => ($user->getId())]);
if ($user)
{
$role = $person->getRoles();
if ($role == 'ROLE_ADMIN')
{
return $this->redirectToRoute('membres');
}
else
{
return $this->redirectToRoute('accueil');
}
}
}
Il m'est retourné cette erreur (dans l'URL, je suis bien sur /roles)
Return value of App\Controller\UserController::roles() must be an instance of Symfony\Component\HttpFoundation\Response, none returned
Je ne comprends pas, me manque t-il un return ?
Merci par avance pour votre temps ;)
J'ai trouvé, il fallait écrire
/**
* @Route("/roles", name="roles")
*
*/
public function roles()
{
if ($this->isGranted('ROLE_ADMIN')) {
return $this->redirectToRoute('dashboard');
}
else{
return $this->redirectToRoute('accueil');
}
if ($user)
Si ton user est null il n'y à en effet pas de return ;)
Donc fais un dump sur ton user mais je pense qu'il est null