IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Cannot autowire argument


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut Cannot autowire argument
    Bonjour,

    Lorsque je fais appel à cette fonction du controller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?php
     
    namespace App\Controller;
    ...
    use App\Entity\Sort;
    ...
    use Symfony\Component\HttpFoundation\Request;
    use Doctrine\Common\Persistence\ObjectManager;
    use Symfony\Component\HttpFoundation\Response;
    ...
     
    /**
         *  @Route("/road_trip/{id}/deleteSort", name="road_trip_deleteSort")
         */
     
        public function deleteSort(Sort $sort, ObjectManager $manager){
     
            if (!$sort) {
                return new Response("La sorte à supprimer n'est pas indiquée" );
            }
     
            if (count($sort->getVehicles()) > 0) {
                return new Response("La sorte est encore liée à des véhicules existants. Il est donc impossible de la supprimer");
            }
     
            $manager->remove($sort);
            $manager->flush();
     
            return new Response("La sorte a été supprimée");
        }
    avec, par exemple, l'adresse "http://127.0.0.1:8000/road_trip/1/deleteSort", j'obtiens l'erreur suivante :

    Cannot autowire argument $sort of "App\Controller\RoadTripController::deleteSort()": it references class "App\Entity\Sort" but no such service exists.
    Quelqu'un aurait une idée de la provenance du problème?

    Merci d'avance pour votre aide.

  2. #2
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Ton paramètre s'appelle id dans ta route et sort dans ta fonction, mets sort dans ta route.

    Pas sûr que passer l'object manager comme ça en paramètre d'action (à vérifier), ça serait dans tous les cas plus propre de l'ajouter dans le constructeur de la classe et de le stocker dans une variable.

    Tu n'as pas besoin de vérifier que ton entité existe bien, Symfony renverra automatiquement une erreur 404 si ce n'est pas le cas.

Discussions similaires

  1. Arguments pour et contre Access ?
    Par bottura dans le forum Sondages et Débats
    Réponses: 240
    Dernier message: 23/03/2018, 23h25
  2. Réponses: 29
    Dernier message: 28/01/2016, 03h51
  3. Réponses: 5
    Dernier message: 26/10/2011, 13h58
  4. it cannot be parameterized with arguments
    Par MacReiben dans le forum Hibernate
    Réponses: 4
    Dernier message: 10/07/2006, 15h29
  5. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo