L'essentiel de CakePHP

Créer ses propres requêtes

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Le framework offre un certain nombre de requêtes prédéfinies. Parfois, ces requêtes ne sont pas suffisantes. Vous allez voir comment en créer des nouvelles.
09:00

Transcription

Nous allons voir maintenant comment créer vos propres requêtes, avec la fonction find. La fonction find est un outil qui permet de faire des requêtes de sélection complexes. Nous allons nous mettre sur la route/articles Ici, par défaut, ce sera la fonction index, l'action index qui sera exécutée. Là, j'ai déjà quelque chose puisqu'ici, je faisais en fait un SELECT * FROM articles. Ensuite, pour faire une requête simple. Ici, nous avions déjà quelque chose mais ici nous utilisions en fait le connection manager, donc là, on va éviter d'utiliser cela. On va utiliser maintenant directement $this-Article qui est en fait la table articlestable. Ça c'est articlestable, et dessus on va faire un find et ensuite, on va voir ce qu'il nous dit en fait. Donc ici, j'ai fait un find et je viens bien de récupérer l'ensemble des éléments. Donc, j'ai l'Id 2 jusqu'à l'Id 14 et en base j'ai bien l'Id 2 jusqu'à l'Id 14. Ici, en fait avec cette fonction là, vous récupérez l'ensemble des articles. Et ici, j'ai fait un foreach pour pouvoir dé-bugger chacun de ces résultats. Ensuite, ici j'utilise $this-Aricle pour en fait avoir la tablearticle, mais je pourrais très bien changer de variable. Par exemple, ici, j'ai article avec un petit « a ». Ici, ça vous permet d'initialiser la tablearticle dans une autre variable. Mais, je vais garder le fonctionnement de base, et je vais garder $this-Article. Donc, je supprime ça. Et il faut aussi savoir que il faut toujours mettre la surcharge dans initialize et pas dans __construct qui est le constructeur par défaut, puisque la fonction initialize est en fait gérée par CakePHP, ce qui est beaucoup mieux que la fonction __construct qui est le constructeur d'une classe et qui lui n'est pas géré par Cake PHP. Nous avions bien la fonction find avec l'ensemble des articles. Donc, maintenant si je décide de faire un toArray. Un toArray, c'est donc une fonction qui permet de convertir directement les résultats en Array, parce que ici, j'ai des Entity\Article. Donc, si j'ajoute toArray, et je dé-bug directement. Result. Voilà. Je vais donc avoir ici des Array. J'ai bien un Array ici. J'ai toujours mon objet, puisque c'est toujours un objet, mais ici, j'ai quand même bien un Array, du coup, j'ai combien d'éléments ? J'ai 10 éléments. Et j'ai bien ici 10 éléments aussi, enfin onze éléments puisque il y a l'index zéro qui est tout en haut. Ensuite vous avez le all. Lui, il fait exactement la même chose que le toArray sauf qu'il laisse ici des objets, et c'est un objet resultset. Ensuite, imaginons que je veuille récupérer le premier par exemple, et j'ai juste à faire appel à la méthode first. Donc là, je vais récupérer le premier élément. Donc ici, c'est l'Id 2, et j'ai bien ici mon premier élément qui est bien l'Id 2. Il est possible de faire la même chose avec le last, pour avoir le dernier élément. Donc ici, j'ai l'Id 14, c'est bien mon dernier élément. Maintenant, si vous voulez éviter d'avoir des doublons. Il est possible de faire cela. Donc ici, je repars de ma fonction find classique. Ici, je veux juste que mon title soit distant, et je sélectionne uniquement deux colonnes. Donc title et content. Donc ici, j'ai bien que les articles. Ici, j'ai bien des articles dont le titre est différent. Donc ici, je n'ai aucun titre pareil, et ici vous voyez bien que j'ai moins d'éléments en fait. Et du coup, si j'enlève le distinct ici, cela me permet en fait de récupérer uniquement deux colonnes. Ici, j'ai bien que deux colonnes. Je n'ai pas mon Slug par exemple. Ça, c'est très intéressant, c'est parce que comme ça, ça vous évite de rapatrier des données inutiles depuis la base de données. Si vous avez une table qui contient énormément de colonnes et que vous avez besoin que de deux colonnes, l'utilisation de ce système où on précise les colonnes est très très importante. Vous pouvez aussi faire des wares en fait. Vous pouvez en fait dire, je ne veux que certains résultats. Donc là, je copie-colle ce que j'ai déjà préparé. Donc ici, je fais un ware et je ne veux que les articles qui contiennent mon titre comme title. Donc, j'enregistre. Donc ici, j'ai bien un seul article. Il est important de savoir que vous pouvez aussi chaîner les wares. Ici, vous pouvez avoir en fait plusieurs wares, etc... Bien sûr avec des valeurs différentes. Il est possible de trier les données. Pour trier les données, voici un exemple: Ici, vous pouvez simplement définir un order et dire si vous voulez en asc ou en desc, de manière ascendante. Ici, c'est dans l'ordre alphabétique ou non alphabétique. Ici, j'ai mon article avec un petit « a », si je mets un grand « a » ça ira mieux. Ici, je récupère pour tous les articles qui ont comme titre, mon titre. Donc je vais enlever le ware pour qu'on puisse voir le order fonctionner. Ici, vu que j'ai des mon titre partout, ça n'a pas forcément d'utilité. Ici, vous voyez bien que le « t » est après. J'ai bien mon titre, tous les mon titre en premier, ensuite j'ai test. Ici, le asc fonctionne bien. Ensuite, vous pouvez aussi limiter le nombre de résultats. Ici, si je veux limiter le nombre de résultats, ici, j'enlève mon ware, et ici, je veux du coup récupérer l'ensemble des articles, mais je vais en récupérer seulement trois. Ici, j'ai toujours mon article avec un petit « a », et ici, j'ai bien trois éléments. D'ailleurs, j'ai aussi deux die. Ensuite, une dernière fonction qui est très importante dans Cake. C'est en fait une méthode page qui vous permet d'avoir des enregistrements suivant un pas. Et ça, c'est très très utile pour la pagination. Je vais enlever le ware pour plus de lisibilité vu qu'on n'a pas énormément d’enregistrements. Ici, je veux limiter à trois et je veux la page une. Ici, j'ai bien trois éléments et j'ai bien mes trois premiers éléments. Si par exemple, je voulais la page deux, j'aurais trois enregistrements, Les trois suivants. Ici, j'ai bien les trois suivants. Ici, j'ai mis page 2, et j'ai bien l'Id 5, 8, 9. Ici, je remets page un. Voilà, vu que j'ai limité à trois, j'ai bien deux, trois et quatre. J'ai bien deux, trois et quatre, cinq, huit et neuf, Lorsque j'appelle mon page deux. Donc ça c'est très très important pour la pagination. Généralement, vous n'affichez pas l'ensemble des données d'une table à l'écran. Vous faites de la pagination pour que vous ne chargiez pas l'ensemble de votre table qui se trouve dans votre base de données. Je vous laisse vous référer à la documentation, si vous voulez aller un peu plus loin là-dessus. Il y a un CakePHP qui dispose d'autres fonctions SQL qui permet de grouper des résultats par exemple. De faire des « ou » et des « et » dans vos requêtes. Ou simplement récupérer le nombre de résultats. Pour ça vous avez la documentation ici, donc c'est ORM, et puis récupérer les données, et l'ensemble des résultats. C'est quelque chose qui est à lire, si vous voulez faire des requêtes assez complexes. Là, nous venons de voir comment manipuler des entités, des tables. Nous venons aussi de découvrir comment supprimer, enregistrer, éditer, comment faire des select assez complexes. Nous venons de voir toute la couche avec la base de données, tout l'ORM en fait de CakePHP. Ensuite, nous allons voir les controllers. Les controllers, ce sont les chefs d'orchestre de votre application. Et nous allons voir comment créer des actions, comment utiliser les objets request et response qui sont des objets très importants dans Cake.

L'essentiel de CakePHP

Développez des applications web évolutives avec CakePHP, du simple blog au site e-commerce à fort trafic. Installez et configurez le framework, maîtrisez le routing, etc.

3h39 (45 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
CakePHP CakePHP 3
Spécial abonnés
Date de parution :22 nov. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !