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 :

Formulaire de recherche symfony (débutant) [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Par défaut Formulaire de recherche symfony (débutant)
    Bonjour,

    Je commence en a utilisé symfony, j'ai donc créer un projet "test".
    Ce projet est en fait un module de "repertoire" dans lequel on peut ajouté, modifié ... des contacts ainsi que leurs références.

    J'ai généré via CRUD un module dans une application, j'ai créer un template tout marche bien c'est super!

    La ou j'ai besoin d'un peu d'aide, j'ai eu l'idée de créer un formulaire de recherche (qui serait sur la page d'accueil de mon module) afin de pouvoir faire des recherches de contact par mots clefs.
    A la soumission, ce formulaire me renverrait donc les résultats dont un des champs contient le ou les mot(s) clef(s).

    devrait-je créer un nouveau module?
    ou bien juste une nouvelle methode dans mon fichier action.class.php et un fichier searchSuccess.php dans mmon template?

    Comment créer le formulaire et la requête de façon simple et optimisé?

    Merci pour votre aide et vos indications

  2. #2
    Membre éprouvé
    Avatar de SOAD08
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 101
    Par défaut
    Il existe un super moteur de recherche sous symfony (bien qu'originaire de Zend) : Lucene, regarde de ce coté
    www.cppreference.com ==> A lire pour vos problèmes touchant à la STL
    www.php.net ==> A lire avant de demander le fonctionnement d'une fonction PHP

    Alliance developpez Muzgo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Par défaut
    Bonjour, merci pour ta réponse ça m'a l'air interessant. Je vais creusé et je reviendrais faire un retour dessus.

    J'ai une petite question, j'ai mon module contact dont la table de donnée contient une clée secondaire relié à la table entreprise (d'un autre module), comment puis-je accéder à cette table depuis mon module contact?

    En gros je souhaiterais affichier le nom de l'entreprise enregistré dans la table entreprise en fonction de l'id_entreprise enregistré dans la table contact.

    Merci pour votre aide

  4. #4
    Membre éprouvé
    Avatar de SOAD08
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 101
    Par défaut
    Si ta clé étrangère a bien été déclarée, il te suffit de définir la méthode __toString() de ton objet entreprise (dans /lib/model)
    www.cppreference.com ==> A lire pour vos problèmes touchant à la STL
    www.php.net ==> A lire avant de demander le fonctionnement d'une fonction PHP

    Alliance developpez Muzgo

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Par défaut
    Merci de ta réponse, donc ce que j'ai fait :

    j'ai rajouté la methode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function __toString(){
     
    	return $this->getNomEts();
     
    }
    ensuite dans mon fichier action.class.php j'ai récupéré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->entreprises = EntreprisePeer::doSelect(new Criteria());
    puis dans le template je devrais pouvoir l'afficher comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $entreprises->__toString();
    mais j'ai une erreur du type :
    Fatal error: Call to a member function __toString() on a non-object in ~apps/frontend/modules/contact/templates/listSuccess.php on line 24
    un mauvais appel a la methode __toString()?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 38
    Par défaut
    Tu cherches à faire un echo sur un tableau ... en effet,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TrucMachinPeer::doSelect(new Criteria());
    te retourne un tableau d'objets TrucMachin ... (d'où le message "Call to a member function __toString() on a non-object" ).

    Ce qu'il te faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($entreprises as $entreprise) {
      echo $entreprise;
    }
    La méthode __toString() est appelée de manière implicite en PHP5.

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/08/2014, 11h56
  2. [2.x] Symfony 2/doctrine2 formulaire de recherche par choix multiple
    Par laurentche dans le forum Symfony
    Réponses: 2
    Dernier message: 03/02/2014, 17h54
  3. [AC-2007] [Débutant] Formulaire de recherche
    Par akonate dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/04/2011, 20h15
  4. Réponses: 3
    Dernier message: 20/10/2005, 12h42
  5. Réponses: 5
    Dernier message: 18/10/2005, 14h09

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