Ca c'est pas correct :
Bonjour j'ai une erreur à 18 minutes sur la vidéo 2 du tuto symfony
Invalid service "App\Controller\HomeController": class has no constructor.
A quel endroit ai je fais une erreur ?
Sachant que ça marche si j'ai ça
``
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Environment;
class HomeController extends AbstractController
{
/**
- @Route ("/", "name="home")
-
@return Response
*/
private $twig;public function __construct($twig)
{
$this->twig = $twig;
}public function index(): Response
{
return $this->render('Pages/home.html.twig');
}
}
``
35 réponses
et pourtant c'est bien ce qu'il fait à 17.32 min
en fait il faut un constructeur pour la page HomeController si je ne met pas le
public function __construct($twig) { $this->twig = $twig; }
ça ne marche pas, étrangement sans le controlleur ça marche pour la page ProprietesController
mais ça c'est bien la meme chose que sur le tuto
``
/**
- @Route ("/", "name="home")
- @return Response
*/
``
Encore une fois tu recopies bêtement et tu ne prends pas le temps de lire la doc que je t'ai envoyé.
En plus de recopier tu recopies mal ! A 17:32 sur la vidéo 2 je ne vois pas la même syntaxe que ce que tu me montres.
au temps pour mois c'est 18:20
https://youtu.be/TjHRk1Kk4JI?t=1100
j'ai lu la doc apres si ça continue à ne pas marcher comme sur le tuto je regarderais les autres façon de le faire dnas la doc
pour HomeController j'ai ça
``<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Environment;
class HomeController extends AbstractController
{
/**
- @Route ("/home", "name="home")
-
@return Response
*/
private $twig;public function __construct($twig)
{
$this->twig = $twig;
}public function index(): Response
{
return $this->render('Pages/home.html.twig');
}
}et pour ProprieteController j'ai ça<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ProprieteController extends AbstractController
{
/**
- @Route ("/biens", name="propriete.index")
-
@return Response
*/public function index(): Response
{
return $this->render('propriete/index.html.twig',
[
'current_menu' => 'propriete'
]);
}
}``
Pourquoi il faut le construct sur le home alors que sur le propriete je peux m'en passer...
Non ce n'est pas ca ! Encore une fois tu recopies mal ! Il faut faire un effort sérieusement, y'a rien qui te choque entre tes deux routes ? :
et
Et arrêtes de poser la question à la seconde, regardes la suite c'est souvent expliqué et en plus ca va changer.
zut, le " devant le name
cela dit il me demande toujours le contructeur...
Tu n'as pas besoin du constructeur pour ca, supprimes le et avance.
Invalid service "App\Controller\HomeController": class has no constructor.
Utililes les balises quotes stp, ca me pète les yeux de déchiffrer à chaque fois !
Première ligne : 3x ALT GR + 7
Ligne 2....: ton code
Dernière ligne : 3x ALT GR + 7
tel quel ça ne marche pas et la c'est ce qu'il y à sur le tuto
Tu peux virer :
Sinon là c'est bon c'est quoi le problème ?
non erreur encore
Ba donnes là ! Je vais pas écrire le code à ta place !
ça ça marche, il faut à tout prix le construct
Je ne sais pas si a une incidence, mais pas d'espace entre @Route et ('/', name="home").
Non il ne faut pas à tout prix le constructeur pour cette classe. Supprimes ce *** __construct
non pas d'incidence sur l'espace après le @Route
Invalid service "App\Controller\HomeController": class has no constructor.
ExceptionStack Trace
Symfony\Component\DependencyInjection\Exception\
RuntimeException
in C:\Users\Fabien\Desktop\Symphony\MaSuperAgence\vendor\symfony\dependency-injection\Compiler\AbstractRecursivePass.php (line 157)
Déjà tes commentaires doivent être au dessus de la fonction sinon aucun intérêt et la route est illisible :
Ensuite tu as indiqué 'Pages' avec un 'p' majuscule. Est ce que le dossier dans template c'est 'Pages' ou 'pages' ?
Rien à faire il veut toujours le
truc de fous sur l'autre page il demande pas le construct et sur la home il le demande
bon ben je vais laisser comme ça avec le construct vide si ça lui fait plaisir, j'espere que ça va pas gener pour la suite, 1 semaine et j'ai avancé de 2 tutos de 20 min .... 1 problème de commande pour lancer le serveur et un problème de constructeur.....
T'as modifié quelque chose dans services.yaml ? Je te garantie qu'il n'y en a pas besoin.
Supprimes ce que tu as mis dans routes.yaml et tu pourras supprimer ton constructeur.
il yavait ça que j'avais mis
effectivement ça marche maintenant
j'ai pas vu à quel moment il supprime ça du fichier services...
A oui ba en plus t'avais oublié un truc... Supprimes tout puis le constructeur.
j'ai encore ça dans le route aussi
bon ces quotes ça marche 1 fois sur 10.....
Il faut mettre 3 quotes, pas deux ! Tu peux tout supprimer comme je te l'ai dis.
ça à l'air bon, pas d'erreur, j'ai pas vu à quel moment il supprimait ce qu'il avait mis dans routes et services dans la vidéo, switcher de fenetre à chaque fois pas top...