>> Alors un d'eux, les meilleures caractéristiques
du cadre Laravel est la Eloquent ORM
et comme David l'a souligné, un ORM est un mappeur objet relationnel
qui vous permet de mapper des données lignes de base à des objets en php
et vous permet de créer des associations
entre ces différents tableaux très facilement sans avoir
à écrire beaucoup de SQL sous le capot
et vous donne une très belle syntaxe pour la recherche
pour un enregistrement individuel.
Ainsi, au lieu de dire, sélectionner, étoiles, de cours
où autre chose que vous dire, de cours, trouver [inaudible]
ou trouver des cours toute la cours que vous recherchez
et il serait de déterminer ce SQL censé être écrite
et exécuter correctement pour vous et tout donner de nouveau à vous
dans un objet qui vous pouvez ensuite afficher
sur l'écran réel facilement.
Donc, la façon dont l'éloquent RM fonctionne est de la convention ...
qu'il utilise est que si vous avez une table de base de données
qui est au pluriel si par exemple, des cours,
vous devez créer une classe cours dossier des modèles d'appel
et c'est tout ce que vous feriez ont à faire est de dire,
de golf de classe s'étend éloquent et il
sous le capot automatiquement suppose
que ce que la table nom est, ce que l'ID est,
manière, il ya une auto incrémenter ID et il ya un
qui vient avec Laravel par défaut, il a appelé l'utilisateur
et il utilise une certaine avance caractéristiques appelées interfaces,
que nous n'allons pas pour aller sur,
mais vous pouvez voir la classe utilisateur, s'étend éloquent,
et vous pouvez définir le nom de la table
si vous ne suivez pas la convention
du pluriel ... ayant un nom de table pluriel
et un nom de classe unique.
Mais nous allons aller de l'avant de créer une donnée pour l'exemple
d'avant, nous allons aller de l'avant et créer un cours.
Nous ferons donc bien sûr dot php
et faire de golf de classe s'étend éloquent.
Et donc je vais sauter dans le php mon administration
et fait re-nom ce tableau de cours.
Alors maintenant, j'ai la table d'un cours avec les mêmes données d'exemple
à partir du premier catalogue que David avait parlé et maintenant
que ce cours est
dans le répertoire de nous du modèle peut aller de l'avant et de dire, bien sûr,
limiter à 10 si nous ne vouloir obtenir 10 dossiers,
obtenons et nous dirons il s'agit de golf.
Et maintenant nous sommes aller de l'avant
et nous allons créer une meilleure vue pour afficher ce genre de choses en fait.
J'ai donc créé réellement une gabarit de la lame antérieure
et je vais juste aller de l'avant et le copier ici juste
pour sauver, sauver quelques-uns minutes de temps.
[Bruit de fond]
Bon, j'ai donc créé un,
dans la vue dossier je créé un cours lame parsèment
et donc je vais faire vue rendre les cours, et je vais
pour passer un cours variables avec la ... en fait cela ne va pas
de travailler, juste une seconde, Cours titre.
Bon, alors ça n'a pas fonctionné parce qu'il dit accès refusé
pour la route de l'utilisateur à l'hôte local.
Si quelqu'un peut me dire ce qu'ils pense pourrait être le problème ici?
Donc, le problème est que je n'ai jamais dit Laravel ce ... qui je suis
en essayant d'accès la base de données,
ce n'est pas automatiquement sais que je suis capable
pour accéder à la base de données Je suis en train de consulter.
Ainsi, dans le dossier de config
que je l'ai mentionné plus tôt il existe un php de point de base de données
déposons et ici nous devons dire que nous sommes nom d'utilisateur, jharvard
et mot de passe cramoisi et maintenant si nous allons de l'avant et de faire
que les données inconnues , base de données.
Donc, la base de données que nous essayons
à prendre est appelé cours [inaudible]
et cette fois il a travaillé.
Alors qu'est-ce qu'il fait ici est il se laisse moi aller de l'avant
et revenir à la commande.
Alors j'ai fait des cours, limiter dix, obtenir,
alors je me suis dit que je veux seulement 10 lignes dans la base de données,
chercher ceux qui pour eux, et de mettre les dans cette variable de cours.
Donc de ce cours variable est un objet
qui contient l' différentes colonnes
que je peux accéder à vraiment facilement dans le modèle.
J'ai donc pour chaque cours que bien sûr ... aller de l'avant et de zoomer,
et je viens de dire bien sûr titre ou description de cours
et il va de l'avant et les sorties quelle que soit la ligne de base de données
est là.
Donc, comme vous pouvez voir son bien simple mais facilement à la raison
avec que d'avoir à écrire le SQL à la main
puis trouver comment, comment mapper dans un objet
mais où ça devient vraiment puissant, c'est quand, comme David tri
de avait mentionné plus tôt, lorsque vous démarrez
d'avoir différentes tables que vous souhaitez associer
avec l'autre, par l'intermédiaire de l' les clés étrangères,
vous pouvez avoir ces objets faire le gros
de l'interrogation et à trouver ce avec quoi paires et comment
à aller de l'avant et rendre cela.
Donc, si nous regardons ... laissez nous poursuivre
et retourner à cette page très rapide, si config de base de données comment il est arrivé
là [inaudible] sauter cette pour le moment.
Ainsi, les différents types dans mes différents types ...
des relations par défaut un certain de la ... il ya un peu plus
que ça, mais ce sont les 4 les plus courants sont un a un,
un a beaucoup, il appartient aussi, et il appartient à plusieurs.
Ainsi, vous pouvez sorte de penser à un a un que,
vous savez si vous ne avoir un de quelque chose,
dans ce cas un compte, cela est vraiment dumbed
bas régime simplifié d'exemple
mais un compte ne dispose que un fournisseur dans ce cas.
Donc, il ya un fournisseur ID et un fournisseur
si dans la table du compte il ya un ID de fournisseur
et un fournisseur lui-même a une pièce d'identité et il n'y a qu'une sorte
d'une relation one to one.
Considérant qu'un ... il ya un appartient trop
si une commande ne pouvait être passée par un client,
alors un client pourrait avoir un tas
des commandes de l'ordre ne appartient à un seul client,
vous ne pouvez pas avoir 3 différents personnes qui achètent la même chose
dans cet exemple.
Et puis un a beaucoup, comme je l'ai dit le client dispose de nombreuses commandes
mais pas dans l'autre sens autour et appartient alors
pour beaucoup, est le plus des relations approfondies
que David allait plus tôt où vous sorte
de joindre deux tables via un tableau de stagiaire,
Donc dans ce cas ensembles, parties est une jointure
des ensembles et pièces ou, par exemple,
qui nous a donné plus tôt,
les cours ... l' instructeurs ont été rejoints
par un instructeur de cours rejoindre table et dans ce cas,
et dans le cas de Laravel,
en fait il ne nécessite pas d' auto mise en œuvre ID primaire
sur la table de jointure si vous pouvez en avoir un,
il ne fait pas nécessiter un ou pour qu'il
de travailler comme il le fait.
Donc, nous allons aller de l'avant et mettre en place de tri
de quelques objets différents basés sur la mise en page de la base de données
que nous avons en ce moment et nous allons donc garder cours
comme objet de base, mais nous sommes aller à dire que dans la recherche
à la table de base de données, le cours a beaucoup réunion
il a de nombreuses heures de réunion, elle appartient à un département
et il appartient à la fois à de nombreux les instructeurs et les exigences.
Donc, il peut y avoir plusieurs exigences pour le cours
mais les exigences pourraient être partagée par les différents cours.
Allons donc de l'avant et voir si nous pouvons modéliser
qui un peu à l'aide les modèles éloquents
Donc, vous avez ... Commençons par l'instructeur point [inaudible]
si semblable à avant, nous sommes aller de l'avant et de dire,
instructeur de classe, s'étend éloquent
et donc ce serait assumer comme je l'ai dit plus tôt,
qu'il existe un pluriel d'instructeurs des instructeurs
et c'est la table qui il sera cartographie à.
Et maintenant, sur le parcours, nous allons aller de l'avant
et dire ... nous allons créer une méthode
de sorte que la fonction publique instructeurs,
le public ... désolé, je suis ... oui les instructeurs de la fonction publique
et la façon dont les ensembles Laravel
des relations est que vous retournez un cela appartient à beaucoup instructeur,
si cela nous dit maintenant que le cours est associé
avec le modèle de l'instructeur, c'est tout ce que nous devions faire
de mettre en place cette relation et maintenant que nous sommes
dans cette boucle ici, nous pouvons dire, si parce que c'est un a ... il appartient
à de nombreuses relations là-bas peut un ou plusieurs moniteurs.
Ainsi son un tableau ou il est un objet qui a plus
d'un instructeur sur elle donc nous allons également boucle
ici et dire pour chaque instructeurs comme instructeur
et puis choisir la première le nom et le prénom,
Je crois que ce sont les colonnes afin premier et le dernier,
il pourrait être le premier nom, nom de famille.
Donc la première et la dernière il est mis dans ce catalogue de cours
et nous allons aller de l'avant et voir si cela rend
donc instructeurs ... ouais dirait qu'ils se montrent
jusqu'à moins qu'il y ait pas un associé
dans ce cas il n'y a pas de moniteurs énumérés
avec qui bien sûr, mais dans tous les les autres cas, vous voyez un
ou plus d'instructeurs que défini dans la relation.
Donc, une chose qui est une sorte de une chasse aux sorcières parfois avec ORM
comme ceci, c'est que vous allez de l'avant et définir une relation
et vous pensez bien que c'est aller chercher mes données correctement
comme je suis à la recherche ici tout est rendu
sur l'écran tout droit, tout va bien,
qu'il fait tout le SQL dans les coulisses pour moi
mais ce qui se passe ici est
quand il récupère tout d'abord l' cours, il ne connaît pas
que vous allez aussi être consultant pour les instructeurs.
Donc, il récupère tous les cours pour vous et puis il va
pour afficher toutes ces données dans le, dans la vue de droite ici
et puis il arrive à ce Pour chaque cours instructeurs
et il dit d'accord, je ne sais pas savent ce que les instructeurs sont
encore laissez-moi aller chercher les
et il fait ça tous les temps unique que vous allez
à travers la boucle de golf.
Donc, à chaque fois que vous êtes essayant d'afficher un cours
sur l'écran c'est un peu tard pour tout dire j'ai besoin
pour trouver ce que l' instructeurs sont pour cette ligne
et il est donc de faire n plus une requête
il est donc fait cependant de nombreuses boucles vous avez ça en fait une autre
interroger alors que ce n'est pas le moyen le plus efficace d'aller
de la récupération et l'affichage de vos données.
Ainsi, la manière d'aller chercher tout à l'avant dans Laravel est
à-dire bien sûr, avec instructeurs limitent dix get
et maintenant il sait qu'il n'y paraît pas différent juste à l'oeil
mais au lieu de faire je pense qu'il serait 12 requêtes
ou si les coulisses maintenant c'est seulement faire deux ou trois.
Donc, nous pouvons aller, nous pouvons continuer de cette façon et mettre
juste un peu plus relations si ce sont certains
de l'autre a beaucoup réunion.
Alors même que nous mettons en place un modèle appelé réunion,
classe [inaudible] s'étend éloquent
et il se doit ... tout devraient être pris en charge ici
si l'on regarde le tableau des réunions il possède un ID d'incrémentation automatique
c'est pluriel donc tout devrait fonctionner correctement si nous essayons
pour afficher les réunions.
Donc, revenons à nous ceci a déjà été expliqué
et c'était une nouvelle relation ... désolé c'était un
a [inaudible] réunion, de sorte regardons la table de réunion
et voir ce que nous pourrions vous voulez afficher ici.
Donc, nous allons afficher juste ... en fait J'ai un ensemble de modèles
pour cela, je vais juste prendre une petite table
et collez ce chef ici.
Donc, je vais afficher quelques-unes des données
sur les différents cours réunions et [inaudible].
Voir si j'ai raté quelque chose ici, réunions, je l'avais singulier
alors maintenant nous avons sorte de la table ici
quant à l'autre réunions, ce type sont,
quand il commence, finit etc.
Donc, je peux continuer dans tout la mise en place de ces relations
mais comme vous le voyez sorte de fait abstraction SQL d'avoir
être écrit à la main et il prend soin d'un lot
des charges lourdes dans les coulisses pour vous
lorsque vous créez ces associations sur la base des clefs
qui sont mis en place correctement dans la base de données.
Comme vous allez à travers
et l'installation Laravel Il ya beaucoup ... il ya tellement
pour couvrir c'est en fait sorte de mal à essayer de voir
quelle partie de mordre et aller plus, mais il ya beaucoup plus
que nous allons continuer à discuter probablement lundi.
Beaucoup plus de fonctionnalités à l'ORM éloquent
et les différentes façons de l'enregistrement des données, associer des données,
suppression des choses, la création les différents champs
lorsque vous interrogez insertion [inaudible] etc
de sorte que vous pouvez jeter un oeil par ce sujet et je pense ...
>> Le processus il sera
comme se déplaçant alors vers l'avant est une fois nous avons formé notre groupe de base,
quatre groupes de personnes une fois que nous décidons
sur les projets de divers groupes et sont la façon dont les responsabilités
seront généralement divvied jusqu'à est un ou deux d'entre vous trier
de revenir au dessin conseil et de comprendre tous les droits
pour tout problème nous essayons
pour résoudre voici l' entités que nous avons à mettre en œuvre,
par exemple, un instructeur ou un noyau ou une sorte
de rejoindre il de et vous aurez spec les tables de base de données
comme nous l'avons fait dans la première moitié de aujourd'hui et alors que Tim a fait allusion
à ici la prochaine étape ce processus sera à venir
avec les classes et vous allez écrire quelques fichiers
qui s'étendent éloquent de cette façon en utilisant une partie de la
de la fonctionnalité de la boîte, mais puis en ajoutant peut-être une
Vous êtes propriétaire de fonctionnalité pour exemple d'obtenir le numéro de téléphone
où vous pourriez très bien formater le numéro de téléphone sur la base
sur un thème norme et ainsi de suite et puis tout
Cette information sera vraisemblablement être communiquée à votre bien-
ou deux ou trois autres ... d'autres personnes
dans votre groupe en disant tout droite vous avez ces classes,
vous avez maintenant cette fonctionnalité réellement commencer à écrire la logique
mettre en oeuvre les régulateurs, quant à quelqu'un d'autre
dans votre groupe gérera l' points de vue et donc les modèles de lame
que Tim faisait allusion à quelqu'un va prendre soin
de l'expérience [inaudible] et utiliser votre interface
et le menu déroulant utilisateur et tout ce qui
et même si nous avons juste commencé
rayer la surface ici le fait
que Tim n'a pas écrit une seule ligne de SQL et le fait
qu'il était une sorte de mesure
à se joindre à automagiquement ces tables multiples est
où vous commencez vraiment à voir les choses assez puissamment.
Ainsi, même si à abord, il va
être absolument un apprentissage courbe parce que vous avez sorte de
d'apprendre ce cadre particulier fonctionne.
En fin ajoutant une nouvelle table, en ajoutant une nouvelle fonction
pour sûr un nouveau catalogue et autres peuvent prendre quelques minutes
à faire et la mise à jour modèles, quelques secondes
donc c'est vraiment tout à fait passionnant ce que vous pouvez commencer
faire rapidement.
Alors merci beaucoup à Tim sur cette falaise de suspension, ne prenez soins
de la forme de loterie sinon rien à voir
jusqu'à ce que vous entendez en arrière de nous dans un jour ou deux par e-mail,
nous vous reverrons la semaine prochaine.