Bonjour à tous,

Je tente de mettre en place une pagination avec knp-paginator, cela marche bien sauf que le render dans le fichier Twig renvoie du code brut au lieu de Html lorsqu'on appuie sur un des links de page suivante/précédente...

Je précise que la page affichée contenant la pagination est résultat d'une requête Ajax et apparemment cela invalide le render de knp-paginator... La limite est respectée aussi

Merci d'avance pour votre expertise

ContactsController.php :


//Rechercher un contact par alphabétique en Ajax

    #[Route('liste-par-lettre', name: 'liste-par-lettre')]
    public function rechercherContactParLettre(ContactsRepository $contactsRepository, Request $request,PaginatorInterface $paginator): Response
    {
        if ($request->isXmlHttpRequest()) {

        $lettre = $request->request->get('lettre');

        $donnees = $contactsRepository->rechercheContactParAlphabet($lettre);

        $contacts = $paginator->paginate(
            $donnees,
            $request->query->getInt('page', 1),
            10
        );

            return new JsonResponse(['content' => $this->renderView('_partials/_liste-contacts.html.twig', compact('contacts'))]);
        }      
    }

vue Twig :

{% block body %}

    {% if (contacts is defined) and (contacts|length > 0) %}

        {% for c in contacts %}

            <div class="card-body">
                <div class="card-title">
                    <a href="{{path('contacts_modifier-contact',{id:c.id})}}">
                        <i class="fa-regular fa-pen-to-square"></i>
                    </a>
                    <a href="#">
                        <i class="fa-regular fa-trash-can"></i>
                    </a>
                </div>

                <div class="card-header">

                    <div class="details-contact">
                        {% if c.photo %}
                            <img class="photo-contact" src="{{asset('/assets/uploads/photos/contacts/mini/'~ c.photo)}}" alt="{{c.nom}} {{c.prenom}}">
                        {% else %}
                            <img class="photo-contact" src="{{asset('/assets/uploads/photos/default-avatar.svg')}}" alt="{{c.nom}} {{c.prenom}}">
                        {% endif %}
                        <p class="text-center text-blue">
                            <strong>{{c.nom}}
                                {{c.prenom}}</strong>
                        </p>
                        <p class="text-center">{{c.ville}}</p>
                        <p class="text-center">
                            <a href="">{{c.mail1}}</a>
                        </p>
                        {# <p><a href="">{{c.tel1}}</a></p> #}
                    </div>

                </div>

                <div class="card-actions">
                    <a class="btn-options-contact" href="{{path('ecritures_creer-facture',{idContact:c.id})}}">Créer facture</a>
                    <a class="btn-options-contact" href="{{path('ecritures_creer-devis',{idContact:c.id})}}">Créer devis</a>
                    <a class="btn-options-contact" href="#">Créer rdv</a>
                </div>

                <div class="checkboxes-options-contact">
                    <div class="checkboxes">
                        <label for="checkbox-ecritures">
                            <i class="fa-regular fa-eye"></i>Ecritures</label>
                        <input type="checkbox" name="checkboxes-options-contact[]" id="checkbox_ecritures" class="checkboxes-options-contact" data-idcontact={{c.id}}>
                    </div>
                    <div class="checkboxes">
                        <label for="checkbox-rdv">
                            <i class="fa-regular fa-eye"></i>Rendez-vous</label>
                        <input type="checkbox" name="checkboxes-options-contact[]" id="checkbox_rdv" class="checkboxes-options-contact" data-idcontact={{c.id}}>
                    </div>
                </div>

                {# Affiché en Ajax #}
                <div class="ecritures-contact" id="ecritures-contact-{{c.id}}"></div>
                <div class="rdv-contact" id="rdv-contact-{{c.id}}"></div>
            </div>
        {% endfor %}
        <div class="pagination">
            {{knp_pagination_render(contacts)}}
        </div>
    {% else %}
        <p>Aucun contact n'a encore été enregistré dans la base.</p>
    {% endif %}
{% endblock %}

Aucune réponse