Partage
  • Partager sur Facebook
  • Partager sur Twitter

filtre de Recherche dans Symfony

25 janvier 2022 à 21:29:50

Bonjour,

Je viens de remarquer quelque-chose d'étrange.

J'ai fait un filtre de recherche de produits par catégorie

J'ai ma classe ci-dessous:

class Search
{

    private $categories;


    public function getCategories()
    {
        return $this->categories;
    }

    public function setCategories($categories): self
    {
        $this->categories = $categories;

        return $this;
    }


}

et le formType

class SearchType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('categories',EntityType::class,[
                'class'=>Category::class,
                'choice_label'=>'name',
                'required'=>false,
                'multiple'=>true,
                'expanded'=>true

            ])
        ->add('submit',SubmitType::class,[
            'label'=>'Filtrer',
            'attr'=>[
                'class'=>'btn col-12 btn-primary'
            ]

            ]);
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults([
            // Configure your form options here
            'data_class' => Search::class,
            'method'=>'GET'
        ]);
    }
}




Je n'ai pas mis le controleur

Le phénomène etrange se passe côté twig.

En effet si je mets le code

   {{form_start(form)}}

    {{form_end(form)}}


L'affichage est correcte et tout se passe bien.

Par contre si je mets

{{form(form)}}


J'ai une erreur  Object of class App\Entity\Search could not be converted to string et si je crée une fonction __toString un champ input search qui apparait <input type="search" id="search" name="search" required="required" class="form-control">

Visiblement, c'est du au nom que j'ai utilisé Search.php et SearchType.php. Si je modifie les noms tout rentre dans l'ordre.

Eric

-
Edité par seabird 25 janvier 2022 à 21:33:22

  • Partager sur Facebook
  • Partager sur Twitter
5 avril 2024 à 12:08:45 - Message modéré pour le motif suivant : Message complètement hors sujet


5 avril 2024 à 12:17:24

@LmCasLmCas Bonjour, merci de créer votre propre sujet.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter