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 :

ParamConverter erreur avec fullcalendar tattali


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 109
    Par défaut ParamConverter erreur avec fullcalendar tattali
    Bonjour,
    J'ai réussi a installer plusieurs fois le bundle fullcalendar de tattali mais aujourd'hui (depuis deux semaines en fait) j'ai créé un nouveau projet symfony 4.3.4 et je n'arrive pas a utiliser le bundle.
    Une erreur s'affiche @paramconverter.
    Je vous joins la capture d'écran.
    Nom : Capture d’écran de 2019-10-11 19-29-16.png
Affichages : 1091
Taille : 166,0 Ko
    J'ai pourtant bien suivi la documentation sur le github.
    Je me permets aussi de vous poster le code de mon listener, de la vue, du controller et u service .yml.
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
    namespace App\EventListener;
     
    use CalendarBundle\Entity\Event;
    use CalendarBundle\Event\CalendarEvent;
    use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
    use App\Repository\EvenementRepository;
     
    class CalendarListener
    {
      private $evenementRepository;
      private $router;
     
      public function __construct(EvenementRepository $evenementRepository, UrlGeneratorInterface $router)
      {
          $this->$evenementRepository = $evenementRepository;
          $this->router = $router;
      }
        public function load(CalendarEvent $calendar)
        {
            $start = $calendar->getStart();
            $end = $calendar->getEnd();
            $filters = $calendar->getFilters();
     
            // You may want to make a custom query to fill the calendar
     
            $calendar->addEvent(new Event(
                'Event 1',
                new \DateTime('Tuesday this week'),
                new \DateTime('Wednesdays this week')
            ));
     
            // If the end date is null or not defined, it creates a all day event
            $calendar->addEvent(new Event(
                'All day event',
                new \DateTime('Friday this week')
            ));
        }
    }
    ***********************************
    Code twig : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    {%extends 'base.html.twig'%}
    {%block body%}
      {% include '@Calendar/calendar.html.twig' %}
    {%endblock%}
    {% block stylesheets %}
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.1.0/main.min.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@4.1.0/main.min.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@4.1.0/main.min.css">
    {% endblock %}
     
    {% block javascripts %}
        <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.1.0/main.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@4.1.0/main.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@4.1.0/main.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@4.1.0/main.min.js"></script>
     
        <script type="text/javascript">
            document.addEventListener('DOMContentLoaded', () => {
                var calendarEl = document.getElementById('calendar-holder');
     
                var calendar = new FullCalendar.Calendar(calendarEl, {
                    defaultView: 'dayGridMonth',
                    editable: true,
                    eventSources: [
                        {
                            url: "{{ path('fc_load_events') }}",
                            method: "POST",
                            extraParams: {
                                filters: JSON.stringify({})
                            },
                            failure: () => {
                                // alert("There was an error while fetching FullCalendar!");
                            },
                        },
                    ],
                    header: {
                        left: 'prev,next today',
                        center: 'title',
                        right: 'dayGridMonth,timeGridWeek,timeGridDay',
                    },
                    plugins: [ 'interaction', 'dayGrid', 'timeGrid' ], // https://fullcalendar.io/docs/plugin-index
                    timeZone: 'UTC',
                });
                calendar.render();
            });
        </script>
    {% endblock %}
    *****************************************
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <?php
     
    namespace App\Controller;
     
    use App\Entity\Evenement;
    use App\Form\EvenementType;
    use App\Repository\EvenementRepository;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    use CalendarBundle\Event\CalendarEvent;
     
    /**
     * @Route("/evenement")
     */
    class EvenementController extends AbstractController
    {
        /**
         * @Route("/", name="evenement_index", methods={"GET"})
         */
        public function index(EvenementRepository $evenementRepository): Response
        {
            return $this->render('evenement/index.html.twig', [
                'evenements' => $evenementRepository->findAll(),
            ]);
        }
     
        /**
         * @Route("/new", name="evenement_new", methods={"GET","POST"})
         */
        public function new(Request $request): Response
        {
            $evenement = new Evenement();
            $form = $this->createForm(EvenementType::class, $evenement);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->persist($evenement);
                $entityManager->flush();
     
                return $this->redirectToRoute('evenement_index');
            }
     
            return $this->render('evenement/new.html.twig', [
                'evenement' => $evenement,
                'form' => $form->createView(),
            ]);
        }
     
        /**
         * @Route("/{id}", name="evenement_show", methods={"GET"})
         */
        public function show(Evenement $evenement): Response
        {
            return $this->render('evenement/show.html.twig', [
                'evenement' => $evenement,
            ]);
        }
     
        /**
         * @Route("/{id}/edit", name="evenement_edit", methods={"GET","POST"})
         */
        public function edit(Request $request, Evenement $evenement): Response
        {
            $form = $this->createForm(EvenementType::class, $evenement);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $this->getDoctrine()->getManager()->flush();
     
                return $this->redirectToRoute('evenement_index');
            }
     
            return $this->render('evenement/edit.html.twig', [
                'evenement' => $evenement,
                'form' => $form->createView(),
            ]);
        }
     
        /**
         * @Route("/{id}", name="evenement_delete", methods={"DELETE"})
         */
        public function delete(Request $request, Evenement $evenement): Response
        {
            if ($this->isCsrfTokenValid('delete'.$evenement->getId(), $request->request->get('_token'))) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->remove($evenement);
                $entityManager->flush();
            }
     
            return $this->redirectToRoute('evenement_index');
        }
     
        /**
         * @Route("/calendrier", name="calendrier")
         */
        public function afficher()
        {
            return $this->render('calendrier/calendrier.html.twig');
        }
    }
    ****************************************
    Code yaml : 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
    # This file is the entry point to configure your own services.
    # Files in the packages/ subdirectory configure your dependencies.
     
    # Put parameters here that don't need to change on each machine where the app is deployed
    # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
    parameters:
     
    services:
        # default configuration for services in *this* file
        _defaults:
            autowire: true      # Automatically injects dependencies in your services.
            autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
     
        # makes classes in src/ available to be used as services
        # this creates a service per class whose id is the fully-qualified class name
        App\:
            resource: '../src/*'
            exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
     
        # controllers are imported separately to make sure services can be injected
        # as action arguments even if you don't extend any base controller class
        App\Controller\:
            resource: '../src/Controller'
            tags: ['controller.service_arguments']
     
        App\EventListener\CalendarListener:
            tags:
                - { name: 'kernel.event_listener', event: 'calendar.set_data', method: load }
     
        # add more service definitions when explicit configuration is needed
        # please note that last definitions always *replace* previous ones
    *********************************************
    J'ai une autre question qui sort un peu du sujet. Savez vous comment désinstaller completement un bundle de symfony 4 ?

    Merci de votre aide la communauté ! et pour ceux qui habitent dans le pays basque passez vers bayonne on pourra boire une petite bière a la gloire de Symfony

  2. #2
    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
    Bonjour,

    Cela provient d'un paramètre que tu passes à ta route et qui n'e parvient pas à être converti. Donc, il faut regarder à ce que tu passes comme type de paramètre aux routes suivantes :

    - @Route("/{id}", name="evenement_show", methods={"GET"})
    - @Route("/{id}/edit", name="evenement_edit", methods={"GET","POST"})
    - @Route("/{id}", name="evenement_delete", methods={"DELETE"})


    Cette erreur s'affiche lorsque tu appelles quelle route?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 109
    Par défaut pas de parametre sur ma route
    Bonjour,
    Oui cette erreur apparait lorsque j'appelle ma route mais dans mon controller il n'y a pas de parametre sur celle ci.
    Je ne comprends pas ce qui se passe.

  4. #4
    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
    C'est lorsque tu appelles quelle route? En d'autres mots, sur quelle url apparaît cette erreur?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 109
    Par défaut 2 routes identiques
    Bonjour,
    votre remarque fût fort judicieuse car le probleme venait du fait que se n'était pas ma méthode afficher mais show qui était appelé.
    Merci maintenant j'ai bien une page mais sans erreur apparante mais je n'ai pas mon calendrier.
    Screenshot a l'appuye
    Nom : Capture d’écran de 2019-10-12 16-44-23.png
Affichages : 803
Taille : 102,6 Ko
    Je ne comprends pas encore pourquoi. Je crois que symfony ne prend pas en compte ma méthode load dans le listener......
    Avez vous une idée ? Merci

    Vincent

  6. #6
    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
    Quel est le code source de calendrier.html.twig appelé par la route evenement/calendrier? Est-ce le code twig mis dans le premier message?

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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