Le but de cette application est de permettre à une entreprise de gérer une documentation en ligne, permettant à ses salariés de créer, modifier ou supprimer des éléments de cette documentation. Elle sera accessible en lecture par tout le monde en tant qu'utilisateur.
Il m'a fallut utiliser 3 classes métier pour la fonction de recherche :
Cette fonction se trouve dans Documents :
Méthode | Descriptif |
---|---|
Index | Fonction appelée par défaut. |
Refresh | Initialisation des outils qui vont être utilisés lors du chargement de la page. |
Recherche | Permet de rechercher dans la base, en fonction de ce qui a été sélectionné, un titre ou le contenu d'une partie. |
La vue utilisée ici est la vue “v_search” :
Exemple de recherche sur les titres :
Exemple de recherche sur les contenus :
On rentre ce que l'on recherche dans la zone de texte, et on coche si oui ou non on veut chercher dans le contenu du document. Il suffit juste ensuite de lancer la recherche.
Voici les requêtes de doctrines utilisées dans cette fonction :
Exemple d'un select :
<?php //Création de la requête de sélection $query = $this->doctrine->em->createQuery("SELECT d FROM document d"); //Récupération des résultats de la sélection $doc = $query->getResult();
Requête de recherche dans les titres :
<?php //Création de la requête de sélection $titres = $this->doctrine->em->createQuery("SELECT d FROM document d WHERE d.titre LIKE '%$titre%'"); //Exécution de la requête. $research = $titres->execute();
Requête de recherche dans les contenus
<?php //Création de la requête de sélection $contenu = $this->doctrine->em->createQuery("SELECT p FROM partie p JOIN p.version v JOIN v.document d WHERE p.contenu LIKE '%$titre%'"); //Exécution de la requête. $search = $contenu->execute();