1 00:00:00,000 --> 00:00:02,538 >> [Jouer de la musique] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC OUYANG: Hey, tout le monde. 4 00:00:12,390 --> 00:00:13,580 Bienvenue. 5 00:00:13,580 --> 00:00:16,860 Ce est du bâtiment dynamique Applications Web avec Laravel. 6 00:00:16,860 --> 00:00:18,290 Mon nom est Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Je suis un étudiant en deuxième année à étudier les sciences sociales avec un secondaire en informatique, 8 00:00:23,860 --> 00:00:27,290 et je vis à Adams Maison ici à Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Donc Laravel, à son plus central, est un cadre de l'application web MVC. 10 00:00:33,340 --> 00:00:38,265 Donc, comme ce que vous les gars ont été fait avec CS50 Finances, 11 00:00:38,265 --> 00:00:42,480 Laravel est un cadre qui permet de construire des applications web dynamiques. 12 00:00:42,480 --> 00:00:47,710 Ainsi, vous pouvez penser que ce est dans un certain sens comme une extension du type de choses 13 00:00:47,710 --> 00:00:50,470 vous avez fait dans CS50 Finances, mais un système qui est 14 00:00:50,470 --> 00:00:55,890 beaucoup plus robuste, beaucoup plus élégant dans un certain sens, 15 00:00:55,890 --> 00:00:57,870 et fournit un grand nombre de fonctionnalité pour vous 16 00:00:57,870 --> 00:01:03,060 de construire assez complexe applications web. 17 00:01:03,060 --> 00:01:05,010 Donc, nous allons passer par un certain des caractéristiques clés, 18 00:01:05,010 --> 00:01:09,550 et puis nous allons plonger dans un exemple de construction d'un blog 19 00:01:09,550 --> 00:01:12,500 application avec Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Donc l'une des premières choses que différencie de Type MVC de travail 21 00:01:16,700 --> 00:01:22,100 que vous avez fait avec CS50 est-il inclut un moteur de ORM. 22 00:01:22,100 --> 00:01:27,410 Donc ORM signifie objet mappage relationnel. 23 00:01:27,410 --> 00:01:31,080 Donc, ce qui vous permet de construire une couche d'abstraction 24 00:01:31,080 --> 00:01:35,230 entre la base de données et vos contrôleurs. 25 00:01:35,230 --> 00:01:39,150 Donc, contrairement à CS50 Finances où vous faites directement requêtes, 26 00:01:39,150 --> 00:01:44,790 la couche ORM vous permet de abstraite qui loin et de créer 27 00:01:44,790 --> 00:01:48,085 modèles qui sont plus puissants que vous pouvez directement avec des requêtes SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Une autre chose qui est vraiment est utile modèles héréditaires. 30 00:01:53,510 --> 00:01:58,990 Donc, vous remarquerez dans CS50 Finances, vous vous retrouvez réécriture beaucoup de choses, 31 00:01:58,990 --> 00:02:03,150 où endroits que vous pourriez potentiellement réutiliser les choses, vous n'êtes pas en mesure de. 32 00:02:03,150 --> 00:02:08,539 Donc, ici, à Laravel, vous pouvez utiliser ce qui est connu comme le moteur de template de la lame 33 00:02:08,539 --> 00:02:10,530 pour créer une mise en page maître. 34 00:02:10,530 --> 00:02:15,840 Et à partir de là, vous pouvez hériter de sorte que les sous-modèles peuvent réellement 35 00:02:15,840 --> 00:02:21,210 inclure des éléments à l'intérieur ce plus grand modèle de base. 36 00:02:21,210 --> 00:02:21,810 >> Migration. 37 00:02:21,810 --> 00:02:29,010 Donc, ce est une des caractéristiques assez standard sur la plupart des cadres d'applications Web modernes. 38 00:02:29,010 --> 00:02:32,710 Donc, ce qui vous permet représentez les changements de schéma de base de données dans le code. 39 00:02:32,710 --> 00:02:39,200 Donc, sans aller à dire, phpMyAdmin, vous pouvez réellement créer ces migrations 40 00:02:39,200 --> 00:02:44,660 où vous représentez la base de données modifications de schéma dans le code directement. 41 00:02:44,660 --> 00:02:48,070 Et cela vous permet to-- particulier si vous avez plusieurs personnes travaillant 42 00:02:48,070 --> 00:02:52,650 sur le même Application-- Web suivre ces changements, 43 00:02:52,650 --> 00:02:55,380 dire GitHub, ou un autre référentiel. 44 00:02:55,380 --> 00:03:00,880 >> Donc, ce est vraiment utile et atténue la nécessité 45 00:03:00,880 --> 00:03:04,580 à, disons, passer autour d'un lot de SQL décharges. 46 00:03:04,580 --> 00:03:07,140 Et enfin, est Compositeur quelque chose de vraiment, vraiment utile 47 00:03:07,140 --> 00:03:09,840 qui vous permet d'utiliser d'autres le code de gens à faire des choses impressionnantes. 48 00:03:09,840 --> 00:03:14,020 Donc Laravel est structuré comme plusieurs paquets de compositeur. 49 00:03:14,020 --> 00:03:17,870 Alors dites si vous vouliez apporter dans un package d'authentification 50 00:03:17,870 --> 00:03:23,440 ou si vous voulez mettre un peu sorte de script de générateur ou un admin 51 00:03:23,440 --> 00:03:26,910 interface, vous pouvez brancher et de jouer ces composants avec le compositeur. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Donc, nous allons commencer. 54 00:03:31,570 --> 00:03:35,185 Les questions de votre part gars avant que nous commencions? 55 00:03:35,185 --> 00:03:36,500 Pas de questions? 56 00:03:36,500 --> 00:03:37,490 Cool. 57 00:03:37,490 --> 00:03:39,990 Donc, la première étape est Compositeur installation. 58 00:03:39,990 --> 00:03:43,590 Donc Compositeur vous permet de gérer ces dépendances, 59 00:03:43,590 --> 00:03:47,770 si ce est le cadre Laravel ou une autre extension certains tiers. 60 00:03:47,770 --> 00:03:50,400 La première commande permet vous permet de télécharger Compositeur, 61 00:03:50,400 --> 00:03:55,890 et la seconde commande vous permet de le déplacer dans votre dossier bin locale 62 00:03:55,890 --> 00:04:01,340 de sorte que vous pouvez exécuter Compositeur directement par l'intermédiaire du terminal. 63 00:04:01,340 --> 00:04:05,405 >> Après cela, allez-y et créer un nouveau projet Laravel. 64 00:04:05,405 --> 00:04:07,280 Nous allons en fait utiliser quelques exemples de code 65 00:04:07,280 --> 00:04:10,760 que je ai mis en place pour créer ce blog. 66 00:04:10,760 --> 00:04:14,420 Mais si vous êtes à partir de zéro, vous devez utiliser cette commande 67 00:04:14,420 --> 00:04:18,160 ici, le compositeur crée-projet, Laravel slash Laravel, puis 68 00:04:18,160 --> 00:04:19,940 le nom de votre projet. 69 00:04:19,940 --> 00:04:22,275 Et qui comprendra tout le code de distribution 70 00:04:22,275 --> 00:04:23,733 pour démarrer un nouveau projet Laravel. 71 00:04:23,733 --> 00:04:28,870 Donc, pour vos projets finaux CS50, vous aurez voudrez probablement utiliser cette commande. 72 00:04:28,870 --> 00:04:31,210 >> Mais nous allons commencer avec cela. 73 00:04:31,210 --> 00:04:34,630 Donc, une fois que vous avez fait cela, vous allez obtenir 74 00:04:34,630 --> 00:04:40,190 un nombre assez vaste des fichiers dans blog50. 75 00:04:40,190 --> 00:04:43,840 Donc, nous allons juste passer par certains de ces composants. 76 00:04:43,840 --> 00:04:49,060 Vous remarquerez à cette route répertoire, il ya un dossier d'application. 77 00:04:49,060 --> 00:04:52,960 Dans le dossier de l'application, il ya Un couple dossiers utiles. 78 00:04:52,960 --> 00:04:56,330 De la note pour commencer est ce dossier de config. 79 00:04:56,330 --> 00:04:59,210 Donc, ce met en place la façon dont votre application web est 80 00:04:59,210 --> 00:05:04,350 va, disons, d'authentifier les personnes ou les choses de trésorerie ou se connecter à la base de données. 81 00:05:04,350 --> 00:05:06,400 >> Et ce qui est vraiment utile est que Laravel 82 00:05:06,400 --> 00:05:09,130 vous permet de configurer différents environnements de développement. 83 00:05:09,130 --> 00:05:12,090 Donc ce que nous avons fait ici est de savoir si nous allons dans le dossier local, 84 00:05:12,090 --> 00:05:14,720 il ya un fichier database.php. 85 00:05:14,720 --> 00:05:18,320 Et vous remarquerez ici que nous configurer une connexion MySQL 86 00:05:18,320 --> 00:05:22,230 permet aux personnes de se connecter au serveur MySQL qui est 87 00:05:22,230 --> 00:05:24,310 directement sur l'appareil de CS50. 88 00:05:24,310 --> 00:05:26,980 Et nous connecter à une base de données que je ai mis en place appelé Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Donc, nous allons effectivement aller de l'avant et exécuter la version de travail de ce, 91 00:05:37,085 --> 00:05:39,710 juste pour avoir une idée de ce que le application qui nous construisons 92 00:05:39,710 --> 00:05:41,390 ressemble. 93 00:05:41,390 --> 00:05:46,150 Donc, je ai une copie de ce Blog50 terminée. 94 00:05:46,150 --> 00:05:51,910 Donc effectivement Laravel a construit dans un serveur 95 00:05:51,910 --> 00:05:53,910 que vous pouvez exécuter directement à partir de la ligne de commande. 96 00:05:53,910 --> 00:05:56,900 Ce est donc similaire à la PSet avant quand vous avez réellement 97 00:05:56,900 --> 00:06:00,580 construire votre propre serveur en C. Donc, ils ont construit une dans la 98 00:06:00,580 --> 00:06:04,010 que vous pouvez exécuter vos applications Laravel directement à partir de la ligne de commande. 99 00:06:04,010 --> 00:06:11,650 >> Donc, si nous faisons php artisan servir, ce va lancer un serveur de développement 100 00:06:11,650 --> 00:06:13,880 sur le port 8000. 101 00:06:13,880 --> 00:06:18,250 Donc, si nous allons à l'hôte local 8000, vous remarquerez que, hey. 102 00:06:18,250 --> 00:06:20,800 Nous avons notre blog et en cours d'exécution. 103 00:06:20,800 --> 00:06:25,090 Donc Laravel ici génère la première page de notre blog. 104 00:06:25,090 --> 00:06:26,350 Application très simple. 105 00:06:26,350 --> 00:06:28,610 Mais il ya un couple fonctionnalités vraiment astucieux 106 00:06:28,610 --> 00:06:31,346 qu'il fournit sous la hotte. 107 00:06:31,346 --> 00:06:33,680 >> Donc, de l'application de blogue simple. 108 00:06:33,680 --> 00:06:36,430 Si nous voulions créer un poste, nous pouvons cliquer sur ce bouton. 109 00:06:36,430 --> 00:06:40,470 Nous pouvons dire, «Hé, tout le monde. 110 00:06:40,470 --> 00:06:44,530 Ce est vraiment amusant séminaire, "par exemple. 111 00:06:44,530 --> 00:06:46,560 Et écrire quelque chose ici. 112 00:06:46,560 --> 00:06:48,180 Texte ici. 113 00:06:48,180 --> 00:06:51,327 Si nous cliquez sur Envoyer, vous aurez remarquerez que notre nouveau blog 114 00:06:51,327 --> 00:06:53,410 après a été ajoutée à la page d'accueil du blog. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Si nous revenons ici, vous remarquerez que il ya eu quelques commentaires déjà 117 00:06:59,970 --> 00:07:01,160 sur le blog. 118 00:07:01,160 --> 00:07:03,630 Donc, si nous défiler vers le bas, vous aurez notez que Jonathan Tan dit 119 00:07:03,630 --> 00:07:08,020 qu'il était très intrigué par ce poste. 120 00:07:08,020 --> 00:07:11,570 >> Nous allons donc dans la façon dont l'objet cartographie relationnelle permet 121 00:07:11,570 --> 00:07:16,668 que vous fassiez ces relations une façon assez transparente ainsi. 122 00:07:16,668 --> 00:07:17,660 Cool. 123 00:07:17,660 --> 00:07:20,290 Une question sur les fonctionnalités de ce que nous allons construire? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Cool. 126 00:07:23,840 --> 00:07:28,170 Commençons donc avec effectivement créer les tables de base de données. 127 00:07:28,170 --> 00:07:33,190 >> Donc rappeler que dans CS50 Finance, vous mettre sur pied une table pour les utilisateurs 128 00:07:33,190 --> 00:07:37,100 ainsi que pour la stocks dans votre portefeuille. 129 00:07:37,100 --> 00:07:41,040 Donc, comme nous l'avons mentionné plus tôt, ce que nous utilisons dans Laravel 130 00:07:41,040 --> 00:07:43,090 est quelque chose de connu que les migrations. 131 00:07:43,090 --> 00:07:48,570 Donc, si nous revenons à la code de distribution ici, 132 00:07:48,570 --> 00:07:51,790 la première commande est utiles qui vous fournit Laravel 133 00:07:51,790 --> 00:07:54,240 est cette commande migrate. 134 00:07:54,240 --> 00:07:59,220 Donc, nous pouvons faire artisanal php migrate: faire. 135 00:07:59,220 --> 00:08:01,760 Donc, ce qui nous permet de créer une migration. 136 00:08:01,760 --> 00:08:03,710 >> Et puis nous voulons pour créer une migration 137 00:08:03,710 --> 00:08:07,050 appelé create_posts_table, qui va 138 00:08:07,050 --> 00:08:11,521 d'être là où nous allons être stocker nos messages de blog. 139 00:08:11,521 --> 00:08:14,690 Et vous remarquerez ici qu'il fonctionne grâce à un code qui fait 140 00:08:14,690 --> 00:08:17,580 génère un fichier avec un horodatage sur elle. 141 00:08:17,580 --> 00:08:22,260 Donc, si nous allons et regardons base de données, nous remarquons dans Migrations 142 00:08:22,260 --> 00:08:24,830 qu'il a créé un fichier vide pour nous, qui 143 00:08:24,830 --> 00:08:30,100 a le code passe-partout avec le nom que nous l'avons précisé, create table des messages. 144 00:08:30,100 --> 00:08:31,670 >> Et il a deux fonctions à l'intérieur. 145 00:08:31,670 --> 00:08:40,539 Jusqu'à ce que nous voulons à courir lorsque le migration est appliquée à la base de données. 146 00:08:40,539 --> 00:08:46,380 Et vers le bas est ce que nous allons faire quand nous voulons inverser une migration. 147 00:08:46,380 --> 00:08:49,890 Donc ici nous allons commencer avec l'écriture de cette migration. 148 00:08:49,890 --> 00:08:55,480 Donc, il ya une classe utile dans Laravel appelé schéma. 149 00:08:55,480 --> 00:08:57,910 >> Donc, nous allons exécuter Schema :: create. 150 00:08:57,910 --> 00:09:01,080 Et nous allons créer une table appelée messages. 151 00:09:01,080 --> 00:09:05,980 Et ici, nous appliquons cette aide d'une fonction. 152 00:09:05,980 --> 00:09:11,010 Et à l'intérieur ici, nous allons effectivement préciser le contenu de notre table. 153 00:09:11,010 --> 00:09:14,860 Nous allons créer un ID, qui est auto-incrémentation. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> En outre, nous allons à créer un champ qui 156 00:09:24,350 --> 00:09:27,060 représente le titre de notre blog. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Nous allons également créer un champ pour stocker le texte de notre blog. 159 00:09:36,950 --> 00:09:40,600 Et enfin, nous allons de stocker des horodateurs 160 00:09:40,600 --> 00:09:44,690 quand notre poste a été créé et quand il a été mis à jour. 161 00:09:44,690 --> 00:09:46,240 Et pour le bas, ce est assez simple. 162 00:09:46,240 --> 00:09:53,974 Tout ce que nous voulons faire est de goutte le tableau que nous avons créé. 163 00:09:53,974 --> 00:09:54,930 >> Grande. 164 00:09:54,930 --> 00:09:55,850 Des questions? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Alors maintenant, si nous allons de l'avant et-- effectivement, hôte local, 167 00:10:07,110 --> 00:10:09,640 permettez-moi de supprimer ce que nous avions auparavant. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Aller aux bases de données. 170 00:10:15,190 --> 00:10:17,640 Je vais supprimer ce que nous avions auparavant. 171 00:10:17,640 --> 00:10:22,870 Déposez cela et créer une nouvelle base de données Blog50. 172 00:10:22,870 --> 00:10:24,930 Alors maintenant, ce que le magique partie est ici que nous 173 00:10:24,930 --> 00:10:28,760 peut appliquer directement ces migrations à la base de données en utilisant la ligne de commande 174 00:10:28,760 --> 00:10:29,290 outil. 175 00:10:29,290 --> 00:10:35,100 Donc, si nous faisons php artisan migrent, vous remarquerez que, hey. 176 00:10:35,100 --> 00:10:38,320 Il a créé la table de migration, que nous allons jeter un oeil à un peu, 177 00:10:38,320 --> 00:10:40,540 et elle est appliquée cette première migration. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Donc nous regardons Blog50, vous remarquerez qu'il a créé deux tables pour nous. 180 00:10:48,920 --> 00:10:50,300 Le premier est ce tableau de migrations. 181 00:10:50,300 --> 00:10:54,130 Donc, si nous parcourons cela, vous remarquerez que ce tableau est assez simple. 182 00:10:54,130 --> 00:10:55,490 Il vient de dire que, hey. 183 00:10:55,490 --> 00:10:58,960 Nous avons appliqué cette migration. 184 00:10:58,960 --> 00:11:01,470 Nous allons en arrière et regarder les messages. 185 00:11:01,470 --> 00:11:05,720 Vous remarquerez que la structure est exactement ce que nous avions demandé il. 186 00:11:05,720 --> 00:11:07,350 Nous avons un code d'auto-incrémentation. 187 00:11:07,350 --> 00:11:10,450 Nous avons une chaîne pour stocker le titre, et un champ de texte 188 00:11:10,450 --> 00:11:11,450 pour stocker le contenu. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Grande. 191 00:11:14,706 --> 00:11:15,560 Cool. 192 00:11:15,560 --> 00:11:21,626 Une question sur les migrations travail, comment nous pouvons les appliquer? 193 00:11:21,626 --> 00:11:22,126 Non? 194 00:11:22,126 --> 00:11:23,600 Cool. 195 00:11:23,600 --> 00:11:26,630 Alors maintenant, nous allons aller de l'avant et effectivement créer le modèle. 196 00:11:26,630 --> 00:11:33,100 Donc, nous voulons créer un modèle de postes stocke une abstraction de la base de données. 197 00:11:33,100 --> 00:11:41,040 Ainsi, plutôt que de faire des requêtes MySQL directement, nous allons créer. 198 00:11:41,040 --> 00:11:45,840 Nous devons donc créer un dossier dans appelés ici des modèles. 199 00:11:45,840 --> 00:11:48,905 Et à l'intérieur ici, nous allons créer un fichier appelé post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Dans ce fichier PHP, nous allons créer 202 00:11:54,550 --> 00:12:00,590 un poste de classe qui se étend éloquente. 203 00:12:00,590 --> 00:12:08,950 Eloquent est le nom de l'ORM moteur qui fournit Laravel. 204 00:12:08,950 --> 00:12:12,799 Et ici, nous pourrions attendre à ce que vous avez réellement besoin d'écrire du code. 205 00:12:12,799 --> 00:12:14,840 Nous allons écrire quelques des fonctions d'assistance plus tard. 206 00:12:14,840 --> 00:12:19,420 Mais hors de la boîte, ce sera déjà Reconnaître ce qui est dans la base de données 207 00:12:19,420 --> 00:12:24,770 et nous pouvons accéder à, disons, le texte de notre billet de blog ou le titre, 208 00:12:24,770 --> 00:12:29,230 et de créer directement avec des trucs à peu près pas de code quelconque. 209 00:12:29,230 --> 00:12:31,110 >> Donc, ce est l'un des composants magiques. 210 00:12:31,110 --> 00:12:34,980 Et le vent une fois cette classe est plus à part entière, 211 00:12:34,980 --> 00:12:40,480 nous allons inclure des informations sur ce que ce est lié à, de sorte que les commentaires. 212 00:12:40,480 --> 00:12:42,310 Également créer une fonction afin que nous puissions 213 00:12:42,310 --> 00:12:46,340 obtenir directement l'URL d'une page de blog. 214 00:12:46,340 --> 00:12:46,840 Cool. 215 00:12:46,840 --> 00:12:47,881 Les questions à ce sujet? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Non. 218 00:12:51,832 --> 00:12:54,100 Cool. 219 00:12:54,100 --> 00:12:57,860 >> Alors maintenant, une fois que nous avons notre modèle, nous vouloir créer un contrôleur qui est 220 00:12:57,860 --> 00:13:02,340 capable de se interfacer avec ces modèles, et ensuite la base de données. 221 00:13:02,340 --> 00:13:05,540 Donc, si nous prenons un coup d'oeil BlogController, vous aurez 222 00:13:05,540 --> 00:13:08,490 Notez qu'il n'y a pas beaucoup ici en ce moment. 223 00:13:08,490 --> 00:13:13,220 Tout ce qu'il ya est une fonction d'index qui génère la page d'accueil, 224 00:13:13,220 --> 00:13:18,220 mais sans rien il pour afficher encore. 225 00:13:18,220 --> 00:13:20,560 >> Donc, la première fonction que nous allons créer 226 00:13:20,560 --> 00:13:25,790 est celui qui nous permet pour créer un blog. 227 00:13:25,790 --> 00:13:30,540 Donc, nous allons déclarer une nouvelle fonction appelée newPost. 228 00:13:30,540 --> 00:13:36,430 Et à l'intérieur tout simplement ici, nous allons pour définir la mise en page de cette page 229 00:13:36,430 --> 00:13:41,850 être une version de rendu, si vous vous souvenez du CS50, 230 00:13:41,850 --> 00:13:48,020 de ce modèle appelé blog.new, qui nous allons créer dans un peu. 231 00:13:48,020 --> 00:13:53,170 >> Vous remarquerez ici en ligne six qui nous avons spécifié cette variable, mise en page. 232 00:13:53,170 --> 00:13:55,820 Et si nous prenons un coup d'oeil au dossier Vues, 233 00:13:55,820 --> 00:14:01,640 il ya un dossier Modèles, qui inclut un fichier HTML très basique. 234 00:14:01,640 --> 00:14:04,680 Et de la note, vous remarquerez que nous avons ce conteneur 235 00:14:04,680 --> 00:14:06,800 ici que les rendements contenu. 236 00:14:06,800 --> 00:14:09,460 Donc, à l'intérieur de notre modèle ce que nous allons faire 237 00:14:09,460 --> 00:14:16,180 est de créer ce qui va être substitué directement dans cette mise en page. 238 00:14:16,180 --> 00:14:20,060 >> Alors nous avons dit que nous voulons rendre un modèle appelé blog.new. 239 00:14:20,060 --> 00:14:23,790 Mais à l'intérieur du Blog, il ya pas encore ce nouveau modèle. 240 00:14:23,790 --> 00:14:26,910 Nous allons donc créer un fichier appelé new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Cela indique que Laravel ce fichier PHP devrait 242 00:14:29,860 --> 00:14:31,720 être rendu avec le moteur de template lame. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Donc, ce est un assez fichier simple. 245 00:14:42,630 --> 00:14:46,690 Ça va être la forme par laquelle nous ajoutons en fait dans un billet de blog. 246 00:14:46,690 --> 00:14:49,220 >> Alors la magie ici de la l'héritage est que, hey. 247 00:14:49,220 --> 00:14:52,950 Nous voulons préciser que le section, la section du contenu 248 00:14:52,950 --> 00:14:56,640 ici, ce qui est délimitée parsection etstop. 249 00:14:56,640 --> 00:15:02,260 Donc, ce est entre ici va être substitué dans la mise en page principale. 250 00:15:02,260 --> 00:15:07,000 Et voici ce que nous voulons faire, ce est très simplement créer un nouveau fichier HTML. 251 00:15:07,000 --> 00:15:08,690 Disons simplement ajouter un titre rapide. 252 00:15:08,690 --> 00:15:09,600 Ajouter un blog. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 Et à l'intérieur, nous sommes va créer une forme. 255 00:15:15,390 --> 00:15:19,197 >> Cette forme va avoir une action. 256 00:15:19,197 --> 00:15:21,780 Et cela va être quelque chose que nous substituons au plus tard, 257 00:15:21,780 --> 00:15:24,200 et nous allons voir comment routage se inscrit dans ici. 258 00:15:24,200 --> 00:15:33,600 Mais nous allons juste à définir pour l'instant que cela va à une URL avec la route 259 00:15:33,600 --> 00:15:34,860 de createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 Et puis cela va d'avoir procédé de post. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 Dans ici, nous allons d'avoir deux champs. 264 00:15:47,590 --> 00:15:49,170 div class = "forme-groupe". 265 00:15:49,170 --> 00:15:55,806 >> Nous utilisons la bibliothèque Bootstrap CSS gracieusement fournis par Twitter. 266 00:15:55,806 --> 00:15:57,720 Donc, nous allons créer deux d'entre eux. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Donc, cette première entrée est va être le titre. 269 00:16:05,970 --> 00:16:08,437 Nom Donc entrée = "title". 270 00:16:08,437 --> 00:16:09,270 Class = "FormControl". 271 00:16:09,270 --> 00:16:13,540 272 00:16:13,540 --> 00:16:14,425 Type = "text". 273 00:16:14,425 --> 00:16:16,050 Je vais ajouter un espace réservé = "Title". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> Et puis la seconde est une va être une zone de texte. 276 00:16:26,140 --> 00:16:27,827 Name = "contenu". 277 00:16:27,827 --> 00:16:28,660 Class = "FormControl". 278 00:16:28,660 --> 00:16:33,402 279 00:16:33,402 --> 00:16:34,610 Et espace réservé = "Ecris ici". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Nous y voilà. 282 00:16:43,480 --> 00:16:46,760 Enfin, nous allons ajouter un bouton rapide présenter. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-primaire". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Donc, ce sont tous caractéristiques de Bootstrap sorte 286 00:16:55,340 --> 00:16:58,510 ce qui peut être posé d'une manière qui est 287 00:16:58,510 --> 00:17:03,730 en proie à l'utilisateur, plutôt que HTML nu. 288 00:17:03,730 --> 00:17:06,250 >> Donc, nous avons défini le contrôleur ici. 289 00:17:06,250 --> 00:17:08,930 Nous avons défini une vision très simple. 290 00:17:08,930 --> 00:17:12,339 Mais ce qui manque, ce est le tissu conjonctif. 291 00:17:12,339 --> 00:17:15,420 Donc, à ce stade, Laravel n'a aucune idée de la façon dont 292 00:17:15,420 --> 00:17:18,312 nous allons effectivement accéder à ce contrôleur. 293 00:17:18,312 --> 00:17:20,270 Donc, ce est défini dans un fichier appelé routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 Et maintenant, nous avons une route. 296 00:17:24,310 --> 00:17:29,060 Qui est quand nous allons à la chemin de la maison pour ce site, 297 00:17:29,060 --> 00:17:33,140 il va rendre le contrôleur d'index. 298 00:17:33,140 --> 00:17:38,880 Alors, voici ce que nous devons faire est de mettre en œuvre une nouvelle voie pour nous de créer un poste. 299 00:17:38,880 --> 00:17:41,910 >> Donc, nous utilisons cette méthode obtenir, qui précise 300 00:17:41,910 --> 00:17:48,650 que, lorsqu'un utilisateur tente de obtenir ce page-- spécifiquement 301 00:17:48,650 --> 00:17:52,850 le poste slash nouvelle page-- ce que nous allons faire 302 00:17:52,850 --> 00:18:02,060 est d'utiliser le contrôleur appelé BlogController nouveau poste. 303 00:18:02,060 --> 00:18:03,460 Celui que nous venons de créer. 304 00:18:03,460 --> 00:18:08,090 Et puis nous allons un alias comme newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Nous allons créer un autre fonction dans un peu. 307 00:18:19,850 --> 00:18:23,520 Mais ce qui est ici, sous la touche "que" ce est 308 00:18:23,520 --> 00:18:28,195 nous pouvons substituer dans les nos modèles de lame. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Donc pour l'instant, nous allons fait aussi dire itinéraire. 311 00:18:36,230 --> 00:18:38,380 Donc, nous allons aussi pour créer un contrôleur 312 00:18:38,380 --> 00:18:41,020 de sorte que nous pouvons créer ces postes. 313 00:18:41,020 --> 00:18:46,940 Donc, si un utilisateur des messages à la page après slash nouvelle, ce que nous allons faire 314 00:18:46,940 --> 00:18:51,350 est utilise un contrôleur nous allons créer prochainement 315 00:18:51,350 --> 00:18:56,160 BlogController appelé au createPost. 316 00:18:56,160 --> 00:19:01,929 Et nous allons alias avec ce que createPost. 317 00:19:01,929 --> 00:19:03,380 Cool. 318 00:19:03,380 --> 00:19:05,811 >> Des questions? 319 00:19:05,811 --> 00:19:06,310 Cool. 320 00:19:06,310 --> 00:19:09,790 Donc, nous allons exécuter ce que nous avons à ce jour. 321 00:19:09,790 --> 00:19:16,930 Donc, si nous faisons php artisan servir, nous allons voir beaucoup d'erreurs. 322 00:19:16,930 --> 00:19:20,385 Donc, il semble que nous avons une erreur de syntaxe sur les routes la ligne 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Manquer un point-virgule. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Donc, si nous allons à 8000, vous verrez rien ici encore. 327 00:19:32,870 --> 00:19:34,740 Donc, ce est la page d'accueil par défaut. 328 00:19:34,740 --> 00:19:37,730 >> Mais si nous allons à poster slash nouvelle, hé. 329 00:19:37,730 --> 00:19:40,425 Ce sera la forme que nous venons de créer. 330 00:19:40,425 --> 00:19:42,550 À l'heure actuelle, nous ne avons pas mis en œuvre la fonctionnalité 331 00:19:42,550 --> 00:19:44,060 quand nous appuyons sur le bouton Soumettre. 332 00:19:44,060 --> 00:19:47,110 Donc, si on clique sur la page Soumettre bouton, il va lancer une erreur. 333 00:19:47,110 --> 00:19:49,840 Mais nous allons code en ce moment, précisément ce que nous 334 00:19:49,840 --> 00:19:54,840 voulez faire quand un utilisateur soumet ce formulaire. 335 00:19:54,840 --> 00:19:55,770 >> Alors, faisons cela. 336 00:19:55,770 --> 00:19:57,380 Retour au fichier des contrôleurs. 337 00:19:57,380 --> 00:20:00,180 Ce que nous allons faire est mettre en œuvre cette nouvelle fonction 338 00:20:00,180 --> 00:20:04,360 qui nous permet de créer un poste. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Déclarer nouvelle fonction. 341 00:20:08,990 --> 00:20:11,527 Public createPost de fonction. 342 00:20:11,527 --> 00:20:14,610 Et cette fonction va être un peu plus sophistiqué que ce que 343 00:20:14,610 --> 00:20:15,559 nous avions avant. 344 00:20:15,559 --> 00:20:18,350 Mais vous verrez ici que nous ne sommes pas va effectivement écrire ne importe quel SQL. 345 00:20:18,350 --> 00:20:20,980 L'ORM, le Eloquent ORM, va permettre 346 00:20:20,980 --> 00:20:26,400 nous faisons cela dans certains égards un de façon plus élégante. 347 00:20:26,400 --> 00:20:29,140 >> Nous allons donc créer un nouveau poste. 348 00:20:29,140 --> 00:20:34,120 Et ici nous sommes instancier un nouvel objet 349 00:20:34,120 --> 00:20:38,080 à partir du modèle que nous venons créé, le modèle de poste. 350 00:20:38,080 --> 00:20:44,450 Et ce que nous allons faire est de définir la attribut title de cette utilisant quelque chose 351 00:20:44,450 --> 00:20:47,380 que nous obtenons à partir du serveur. 352 00:20:47,380 --> 00:20:52,060 Donc, ce est similaire à ce nous avions avant dans CS50 Finances 353 00:20:52,060 --> 00:20:57,750 où nous ferions, en utilisant le Super Global Post recherche de titre. 354 00:20:57,750 --> 00:21:01,600 >> Donc Laravel fournit quelques assainissement et ainsi de suite en utilisant cette fonction d'assistance. 355 00:21:01,600 --> 00:21:07,610 Nous serions donc préférer utiliser ce lieu de cette forme brute très basique de PHP. 356 00:21:07,610 --> 00:21:17,430 Et puis ce que nous allons faire est réglé le contenu de celui-ci à l'entrée obtenir du contenu. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Nous allons en fait envelopper cela dans une fonction utile 359 00:21:22,720 --> 00:21:31,820 que PHP fournit appelé nl2br, qui tourne nouvelles lignes, nls, dans ls, les pauses, 360 00:21:31,820 --> 00:21:35,822 afin que nous puissions réellement avoir différents paragraphes en son sein. 361 00:21:35,822 --> 00:21:38,030 Et enfin ce que nous allons à faire est de sauvegarder ce poste. 362 00:21:38,030 --> 00:21:41,686 Donc, nous appelons la fonction économiser sur ce modèle. 363 00:21:41,686 --> 00:21:43,800 Nous allons sauver le poste. 364 00:21:43,800 --> 00:21:49,970 Et enfin ce que nous allons faire est rediriger l'utilisateur spécifiquement 365 00:21:49,970 --> 00:21:55,060 à la voie que nous allons créer peu de temps, alias par viewPost. 366 00:21:55,060 --> 00:22:00,435 Et nous allons passer dans les arguments id, étant l'identifiant de ce nouveau poste. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Grande. 369 00:22:05,640 --> 00:22:09,090 Alors maintenant, si nous allons effectivement et courons cela. 370 00:22:09,090 --> 00:22:11,370 Nous allons ajouter un nouveau poste. 371 00:22:11,370 --> 00:22:15,930 Disons que ce est un séminaire 50. 372 00:22:15,930 --> 00:22:17,620 Et dire, bien sûr. 373 00:22:17,620 --> 00:22:18,240 Asdl. 374 00:22:18,240 --> 00:22:18,740 Peu Importe. 375 00:22:18,740 --> 00:22:20,320 Une sorte de contenu. 376 00:22:20,320 --> 00:22:21,180 Et le soumettre. 377 00:22:21,180 --> 00:22:23,850 Et nous remarquons que, hey. les routes non définis. 378 00:22:23,850 --> 00:22:32,340 Mais si nous prenons un oeil à phpMyAdmin et chercher si oui ou non notre fonction 379 00:22:32,340 --> 00:22:34,370 fait quoi que ce soit. 380 00:22:34,370 --> 00:22:36,670 Regardez les messages Blog50. 381 00:22:36,670 --> 00:22:37,720 Nous remarquons que, hey. 382 00:22:37,720 --> 00:22:43,530 En fait, nous ne avions tout simplement créer ce blog poster avec les horodateurs comme spécifié. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Alors maintenant, revenons et effectivement créer cette autre fonction dans notre contrôleur, 385 00:22:51,630 --> 00:22:54,790 en particulier le dispositif de commande viewPost. 386 00:22:54,790 --> 00:23:00,290 ViewPost fonction Donc public. 387 00:23:00,290 --> 00:23:04,070 Alors, voici ce que nous ferons, à la place comportant des vides entre parenthèses, 388 00:23:04,070 --> 00:23:08,800 nous voulons passer l'ID de le poste que nous créons. 389 00:23:08,800 --> 00:23:12,800 Et d'ici ce que nous allons faire est en fait interroger la base de données pour cela. 390 00:23:12,800 --> 00:23:15,140 >> Donc, si nous ne affichons, il ya une fonction appelée 391 00:23:15,140 --> 00:23:18,860 Trouver qui nous permet de l'interroger par ID. 392 00:23:18,860 --> 00:23:22,110 Plus précisément, en fait, nous allons utiliser une version alternative de cette appelé 393 00:23:22,110 --> 00:23:27,880 Trouver ou Fail, qui nous permet d'arrêter de sortir de cette fonction, 394 00:23:27,880 --> 00:23:34,700 lancer une exception si l'ID nous passons ne existe pas. 395 00:23:34,700 --> 00:23:37,500 Et puis nous allons faire quelque chose semblable à ce que nous avons fait plus tôt 396 00:23:37,500 --> 00:23:41,100 où nous installons le contenu de cette page pour être 397 00:23:41,100 --> 00:23:47,950 la version rendue de cette nouvelle vue que nous allons créer, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> Et nous allons passer dans it-- aime juste dans le CS50 rendre 399 00:23:51,030 --> 00:23:56,645 function-- un dictionnaire de variables. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Les clés de ce tableau associatif deviennent des variables dans le modèle. 402 00:24:04,620 --> 00:24:06,830 Donc, nous allons faire l'enregistrement Le post. 403 00:24:06,830 --> 00:24:12,474 Donc, passez indirectement le poste qui nous avons demandé des explications à partir de la base de données. . 404 00:24:12,474 --> 00:24:14,390 Maintenant, ce que nous allons faire est de créer ce point de vue 405 00:24:14,390 --> 00:24:17,560 de sorte que nous pouvons réellement voir les messages de blog que nous avons construit. 406 00:24:17,560 --> 00:24:20,280 >> Nous allons donc créer un fichier appelé view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Donc, à l'intérieur de ce modèle, ce que nous allons faire 409 00:24:29,640 --> 00:24:39,700 est mis en place une page simple qui nous permet d'afficher le contenu. 410 00:24:39,700 --> 00:24:44,280 Donc, nous faisons partie, ce est avant que le contenu. 411 00:24:44,280 --> 00:24:46,800 Arrêtez. 412 00:24:46,800 --> 00:24:53,920 Et ce que nous allons à faire ici, ce est au sein de 413 00:24:53,920 --> 00:24:56,930 écrire du HTML pour afficher cette page. 414 00:24:56,930 --> 00:25:03,590 >> Donc, nous allons de l'envelopper avec une fantaisie nouvel élément HTML5 appelé article. 415 00:25:03,590 --> 00:25:05,790 Et ici, nous allons d'avoir un en-tête où 416 00:25:05,790 --> 00:25:12,190 nous allons avoir une simple h1, qui comprend le titre du message. 417 00:25:12,190 --> 00:25:17,120 Donc ici, si nous regardons cette notation accolade double, 418 00:25:17,120 --> 00:25:21,690 cela fera essentiellement PHP echo après titre. 419 00:25:21,690 --> 00:25:25,630 Donc, ce est un raccourci utile Laravel que nous offre. 420 00:25:25,630 --> 00:25:31,070 Nous allons donc utiliser cette notation à la place. 421 00:25:31,070 --> 00:25:40,220 >> Et ici, nous allons aussi imprimer le contenu de celui-ci. 422 00:25:40,220 --> 00:25:43,480 Et ici, nous allons faire contenu poste. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 Et au bas de ce que nous sommes aller à faire est de créer un pied de page. 425 00:25:50,660 --> 00:25:57,690 Et dans le pied de page, nous allons premier affichage lorsque cela a été publié. 426 00:25:57,690 --> 00:26:01,320 Donc, cela a été affiché à, créé à. 427 00:26:01,320 --> 00:26:07,996 >> Et Laravel utilise une très belle bibliothèque de jour appelé carbone. 428 00:26:07,996 --> 00:26:11,120 Ainsi, nous pouvons réellement faire quelque chose appelé difforHumans, que vous avez vu plus tôt. 429 00:26:11,120 --> 00:26:14,360 Lorsque nous avons affiché. il va dire, comme, il ya cinq secondes. 430 00:26:14,360 --> 00:26:16,860 Donc, ce est une très belle fonctionnalité de Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 Et enfin, nous allons de fermer ce pied de page. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Alors maintenant, si nous revenons à Accueil nous allons 435 00:26:31,450 --> 00:26:34,490 de ne rien voir encore là parce nous ne avons pas codé jusqu'à la page d'accueil. 436 00:26:34,490 --> 00:26:40,962 Mais si nous allons à poster une barre oblique, nous allons voir une exception. 437 00:26:40,962 --> 00:26:42,670 Est-ce que quelqu'un sait pourquoi nous voyons une exception? 438 00:26:42,670 --> 00:26:44,516 Que nous manque? 439 00:26:44,516 --> 00:26:45,290 Toutes les idées? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Alors qu'est-ce que nous faisons tôt pour nous effectivement 442 00:26:49,790 --> 00:26:52,285 de définir comment nous arrivons à particulier les contrôleurs? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> ENCEINTE 1: La route? 445 00:26:55,770 --> 00:26:56,519 ERIC OUYANG: Ouais. 446 00:26:56,519 --> 00:26:58,070 Donc, nous avons encore à définir la route. 447 00:26:58,070 --> 00:26:59,794 Donc, nous revenons ici pour routes.php. 448 00:26:59,794 --> 00:27:01,710 Vous remarquerez que nous ne ont pas réellement défini 449 00:27:01,710 --> 00:27:05,010 comment nous allons obtenir à ce contrôleur. 450 00:27:05,010 --> 00:27:06,780 Alors maintenant, nous allons définir cette voie. 451 00:27:06,780 --> 00:27:09,280 Ce est assez simple, semblable à ce que nous avons fait plus tôt. 452 00:27:09,280 --> 00:27:13,910 Mais ce que nous allons noter ici est que nous allons avoir un espace réservé. 453 00:27:13,910 --> 00:27:18,730 >> Donc, si nous faisons route.get slash après ID. 454 00:27:18,730 --> 00:27:24,290 Donc ID est maintenant ce qui va se être passé dans le dispositif de commande. 455 00:27:24,290 --> 00:27:27,820 Cela va utiliser le contrôleur que nous venons 456 00:27:27,820 --> 00:27:33,560 créé, BlogController au viewPost. 457 00:27:33,560 --> 00:27:36,420 Et nous allons alias cela comme viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Grande. 460 00:27:47,490 --> 00:27:49,470 Alors maintenant, nous allons créer cette route. 461 00:27:49,470 --> 00:27:52,100 >> Alors maintenant, si nous allons ici et rafraîchir cette page, 462 00:27:52,100 --> 00:27:54,410 nous ne avons, en fait, notre nouveau blog. 463 00:27:54,410 --> 00:27:57,710 Donc, ce est ce que nous avons créé plus tôt. 464 00:27:57,710 --> 00:28:01,320 Très simple page, mais affiche le billet de blog que nous venons de créer. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Cool. 467 00:28:04,760 --> 00:28:08,880 Et si nous fait passer par toute la processus de création d'un nouveau blog, 468 00:28:08,880 --> 00:28:11,700 nous remarquons que tout redirige correctement. 469 00:28:11,700 --> 00:28:12,950 Si je dis: "Salut. 470 00:28:12,950 --> 00:28:15,710 Je suis Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Dis: «Ceci est mon blog." 472 00:28:18,550 --> 00:28:22,830 Et de le soumettre, cela va créer ce nouveau poste de blog avec ID 2, 473 00:28:22,830 --> 00:28:28,920 qui incréments de ce que nous avions précédemment et affiche correctement. 474 00:28:28,920 --> 00:28:30,760 Impressionnant. 475 00:28:30,760 --> 00:28:32,930 >> Des questions? 476 00:28:32,930 --> 00:28:33,430 Oui? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2: ne gère Laravel désinfection et tout pour vous? 478 00:28:36,537 --> 00:28:37,245 ERIC OUYANG: Oui. 479 00:28:37,245 --> 00:28:42,990 Alors, quand nous avons vu plus tôt, quand nous avons fait entrée Colon obtenir, 480 00:28:42,990 --> 00:28:47,720 que toute sanitates SQL injections et autres joyeusetés 481 00:28:47,720 --> 00:28:51,660 que nous pourrions accomplir si nous sommes à un utilisateur malveillant du site. 482 00:28:51,660 --> 00:28:54,115 Donc Laravel gère beaucoup des que derrière les scènes. 483 00:28:54,115 --> 00:28:57,030 Bonne question. 484 00:28:57,030 --> 00:29:00,390 >> Donc, nous allons jeter un oeil à la page d'accueil. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Donc, si nous allons revenir à la première contrôleur pour la page d'accueil, 487 00:29:06,790 --> 00:29:08,740 vous remarquerez qu'il ne fait pas beaucoup ici. 488 00:29:08,740 --> 00:29:11,620 Vous remarquerez que nous ne sommes pas passant dans ce contrôleur 489 00:29:11,620 --> 00:29:13,830 rien de particulièrement utile. 490 00:29:13,830 --> 00:29:16,660 Ce est juste ce fichier d'index. 491 00:29:16,660 --> 00:29:18,770 >> Donc, nous allons passer dans ce quelque chose d'utile. 492 00:29:18,770 --> 00:29:21,450 Et précisément, nous sommes va passer dans les postes. 493 00:29:21,450 --> 00:29:28,740 Et Laravel nous permet à faire après tout, ce qui 494 00:29:28,740 --> 00:29:30,625 nous permettra d'obtenir tous les postes. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Maintenant, si nous revenons à index.php, vous verrez, hey. 497 00:29:35,730 --> 00:29:37,060 Rien ici encore. 498 00:29:37,060 --> 00:29:41,290 Mais ce que nous voulons faire ici est en fait itérer, 499 00:29:41,290 --> 00:29:46,420 faire une boucle foreach sur les postes qui nous permet d'imprimer les messages. 500 00:29:46,420 --> 00:29:53,180 >> Alors que les messages foreach après, ce que nous voulons faire 501 00:29:53,180 --> 00:29:57,252 est d'imprimer le contenu du blog. 502 00:29:57,252 --> 00:30:00,210 Mais une chose que vous remarquerez est que nous avons écrit plus de ce code 503 00:30:00,210 --> 00:30:01,370 déjà, dans view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Donc, ce que nous allons faire, ce est fait utiliser une fonctionnalité utile de Blade 506 00:30:08,640 --> 00:30:11,300 et prendre en compte ce code commun. 507 00:30:11,300 --> 00:30:12,570 Donc, nous allons ici. 508 00:30:12,570 --> 00:30:16,210 >> Nous allons prendre ce contenu ici, et ce que nous allons faire 509 00:30:16,210 --> 00:30:18,170 est de créer un nouveau dossier. 510 00:30:18,170 --> 00:30:20,364 Disons simplement appellent partiels. 511 00:30:20,364 --> 00:30:22,530 Et ici, nous allons pour créer un post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Donc ici, nous pondérée sur la manière que nous voulons afficher ces messages. 514 00:30:33,100 --> 00:30:38,690 Et voici ce que nous ferons au lieu de ayant fait que le HTML directement, 515 00:30:38,690 --> 00:30:41,530 nous allons utiliser cette directive appelé comprennent blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> Et ce que nous allons faire ici est passer dans le poste de la page. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Alors maintenant, si nous revenons ici, nous allons notez que la fonctionnalité est encore 520 00:31:01,050 --> 00:31:01,550 le même. 521 00:31:01,550 --> 00:31:05,140 Mais maintenant nous avons cette pris en compte sur le code, ce code HTML. 522 00:31:05,140 --> 00:31:07,070 Donc, nous pouvons l'utiliser dans l'indice. 523 00:31:07,070 --> 00:31:09,090 Donc ici, ce est très simple. 524 00:31:09,090 --> 00:31:17,870 Tout ce que nous faisons est inclut blog.partials.post et tableau. 525 00:31:17,870 --> 00:31:20,845 Et quelque part au avant, nous faisons Le post. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Alors maintenant, si nous revenons à la page d'accueil, nous allons voir que, hey. 528 00:31:28,182 --> 00:31:30,515 Nous avons une liste de tous les les messages blog que nous avions avant. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Nous pourrions vouloir ajouter un peu de "si" conditions et conditions "else" 531 00:31:37,700 --> 00:31:39,979 de sorte que si nous ne avons pas quoi que ce soit sur le blog, 532 00:31:39,979 --> 00:31:41,520 nous voulons afficher quelque chose d'utile. 533 00:31:41,520 --> 00:31:42,570 Comme, hey. 534 00:31:42,570 --> 00:31:44,340 Il n'y a pas encore de contenu sur le blog. 535 00:31:44,340 --> 00:31:47,670 Et si vous les gars regardez vraiment le code de distribution sur GitHub, 536 00:31:47,670 --> 00:31:50,100 vous verrez un exemple de la façon dont nous le faisons. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Cool. 539 00:31:54,110 --> 00:31:54,890 Des questions? 540 00:31:54,890 --> 00:31:55,510 Oui. 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2: Je pense tout simplement une question fondamentale. 542 00:31:57,468 --> 00:31:59,480 Retour à la route. 543 00:31:59,480 --> 00:32:00,230 ERIC OUYANG: Ouais. 544 00:32:00,230 --> 00:32:01,935 Si nous prenons un coup d'oeil routes. 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2: D'où vient le uses.blogcontroller à créer poste, 546 00:32:06,018 --> 00:32:07,560 qu'est-ce qui nous dirigent à? 547 00:32:07,560 --> 00:32:08,310 ERIC OUYANG: Ouais. 548 00:32:08,310 --> 00:32:08,550 Ouais. 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2: Ou ce qui est that-- 550 00:32:09,716 --> 00:32:12,620 ERIC OUYANG: Alors, jetez un oeil, dire par exemple, cette route ici. 551 00:32:12,620 --> 00:32:17,190 La première partie est la réelle URL que l'utilisateur va aller. 552 00:32:17,190 --> 00:32:19,930 Et ce tableau ici, tableau associatif, définit 553 00:32:19,930 --> 00:32:24,520 comment nous voulons avoir le Application de la Loi en réponse à elle. 554 00:32:24,520 --> 00:32:29,090 Alors utilise est le contrôleur, la fonction qui nous 555 00:32:29,090 --> 00:32:31,610 vouloir appeler quand un utilisateur accède à cette URL. 556 00:32:31,610 --> 00:32:35,190 Donc viewPost ici était un fonction qui nous avons défini l'intérieur 557 00:32:35,190 --> 00:32:36,100 des BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2: Je vois. 559 00:32:37,160 --> 00:32:39,368 >> ERIC OUYANG: -SO que nous peut effectivement rendre un avis, 560 00:32:39,368 --> 00:32:42,590 effectuer des calculs, interagir avec la base de données SQL. 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC OUYANG: Et puis l'autre partie, "comme" est un alias que nous utilisons. 563 00:32:46,960 --> 00:32:50,714 Donc, si nous remarquons quand nous avons créé la forme, 564 00:32:50,714 --> 00:32:52,380 vous remarquerez que URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Donc, il remplace dans le réel URL afin que nous ne sommes pas dur 567 00:32:58,330 --> 00:33:02,940 codant ces pour que nous puissions changer une fois, disons si nous voulions renommer. 568 00:33:02,940 --> 00:33:06,055 Au lieu de poste slash nouvelle, nous voulons faire comme, p 569 00:33:06,055 --> 00:33:09,490 slash nouvelle juste pour nettoyer nos URL un peu. 570 00:33:09,490 --> 00:33:14,740 Nous aimerions changer en un seul endroit plutôt à travers tous les différents fichiers. 571 00:33:14,740 --> 00:33:15,451 >> Cool. 572 00:33:15,451 --> 00:33:15,950 C'est bon. 573 00:33:15,950 --> 00:33:20,070 Alors maintenant, nous avons une très plateforme de blog de base. 574 00:33:20,070 --> 00:33:24,260 Nous voulons probablement ajouter un bouton pour que nous pouvons créer de nouveaux postes. 575 00:33:24,260 --> 00:33:27,850 Donc, si nous prenons un coup d'oeil à la Mise en page, 576 00:33:27,850 --> 00:33:31,280 nous avons une section intitulée tête droite que nous venons défini au sommet. 577 00:33:31,280 --> 00:33:34,820 Donc, nous pouvons ajouter des boutons à le sommet de la tête. 578 00:33:34,820 --> 00:33:43,950 >> Donc, si nous allons à index.blade.php, en fait faire est de définir ce qui se passe à l'intérieur d'ici. 579 00:33:43,950 --> 00:33:46,970 Donc, cette section tête droite, ce que nous allons faire 580 00:33:46,970 --> 00:33:55,240 est d'ajouter dans un bouton pour aller à la URL définie par voie nouveau poste. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Juste pour nettoyer et faire joli et tout Bootstrap, 583 00:34:01,660 --> 00:34:04,630 nous allons faire ce bouton un défaut. 584 00:34:04,630 --> 00:34:07,794 Disons simplement le rendre grand pour le plaisir. 585 00:34:07,794 --> 00:34:09,969 >> Et à l'intérieur, nous pourrions mettre un peu de texte. 586 00:34:09,969 --> 00:34:14,030 Mais ce Bootstrap fournit est glyphicons. 587 00:34:14,030 --> 00:34:17,840 Nous pouvons donc ajouter que belle crayon que nous avons vu plus tôt. 588 00:34:17,840 --> 00:34:20,570 589 00:34:20,570 --> 00:34:21,781 Glyphicon. 590 00:34:21,781 --> 00:34:22,489 Glyphicon-crayon. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Donc, cela va nous permettre de mettre une icône en place du texte. 593 00:34:35,340 --> 00:34:38,960 Maintenant, si nous ne nous arrêtons, ce définira cette section. 594 00:34:38,960 --> 00:34:39,460 Et, hé. 595 00:34:39,460 --> 00:34:45,000 Nous avons un joli bouton qui nous lie directement à la ajouter une page de blog. 596 00:34:45,000 --> 00:34:46,659 >> Donc, nous avons un blog assez simple. 597 00:34:46,659 --> 00:34:49,710 Nous pouvons ajouter des choses à elle. 598 00:34:49,710 --> 00:34:53,650 Mais ce que nous attendons généralement à partir de blogs est commentant. 599 00:34:53,650 --> 00:34:57,340 Donc, ce est vraiment important pour nous d'avoir, dire, si quelqu'un d'autre visite un site web 600 00:34:57,340 --> 00:35:00,620 et aime vraiment le poste qui ils peuvent participer à des discussions 601 00:35:00,620 --> 00:35:03,100 avec d'autres personnes qui visitent la page. 602 00:35:03,100 --> 00:35:07,050 Nous allons donc aller et de créer un nouvelle table de base de données et un nouveau modèle 603 00:35:07,050 --> 00:35:12,220 afin que nous puissions associer commentaires avec des poteaux. 604 00:35:12,220 --> 00:35:17,370 >> Donc la première étape, comme avant, ce est que nous devons exécuter une migration. 605 00:35:17,370 --> 00:35:21,982 Donc, comme avant, nous faisons php artisan migrate: faire. 606 00:35:21,982 --> 00:35:24,440 Et nous allons créer une appelé create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Cela va créer un fichier qui a notre nouvelle migration. 609 00:35:36,080 --> 00:35:40,170 Et nous allons, comme avant, définir une nouvelle table. 610 00:35:40,170 --> 00:35:42,773 Donc Schema :: créer un table appelée commentaires. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Cette fonction ici. 613 00:35:48,430 --> 00:35:51,620 Et à l'intérieur de cette table ce nous allons faire, ce est d'abord, 614 00:35:51,620 --> 00:35:54,260 comme avant, attribuer un ID. 615 00:35:54,260 --> 00:35:56,552 Incrémente ID. 616 00:35:56,552 --> 00:36:05,440 >> Nous allons permettre aux utilisateurs d'associer leur nom avec un commentaire particulier. 617 00:36:05,440 --> 00:36:10,080 Nous allons avoir un certain contenu qui va de pair avec cela, le contenu du texte. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 Et voici ce que nous allons faire, ce est quelque chose de différent. 620 00:36:15,910 --> 00:36:23,620 Nous allons créer un nombre entier cela se appelle post_id qui 621 00:36:23,620 --> 00:36:32,100 va signifier ce poste un commentaire particulier va avec. 622 00:36:32,100 --> 00:36:35,410 >> En outre, nous allons en fait définir une contrainte de clé étrangère à ce sujet. 623 00:36:35,410 --> 00:36:37,750 Donc, MySQL va respecter cela. 624 00:36:37,750 --> 00:36:39,840 Nous ne essayons pas de attribuer commentaire Numéro 625 00:36:39,840 --> 00:36:44,440 5 à poster 5000 si nous ne avons pas eu 5000 postes sur elle. 626 00:36:44,440 --> 00:36:50,240 Donc ce que nous faisons ici, nous faisons post_id étrangère 627 00:36:50,240 --> 00:37:02,046 va être associé à le champ ID des messages de table. 628 00:37:02,046 --> 00:37:05,900 Et nous allons faire quelque chose reste utile, est onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Donc, si nous supprimons certains poster de la base de données, 630 00:37:11,180 --> 00:37:15,507 que nous voulons la cascade supprime des commentaires ainsi. 631 00:37:15,507 --> 00:37:18,090 Parce que ce est pas très utile pour nous d'avoir des commentaires sur les messages 632 00:37:18,090 --> 00:37:19,900 qui ne existent pas. 633 00:37:19,900 --> 00:37:23,764 Et enfin, comme avant, nous sommes va mettre timbres de temps à ce sujet. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 Et comme avant, nous allons ont la migration inverse être 636 00:37:33,510 --> 00:37:37,920 suppression de la table des commentaires. 637 00:37:37,920 --> 00:37:40,070 >> Alors maintenant, si nous remontons ici, nous allons 638 00:37:40,070 --> 00:37:43,110 pour exécuter cette migration, artisan migrent. 639 00:37:43,110 --> 00:37:46,400 Et maintenant il est appliqué cette la migration que nous venons de créer. 640 00:37:46,400 --> 00:37:50,080 Donc, si nous un oeil à phpMyAdmin, nous faisons, en fait, maintenant 641 00:37:50,080 --> 00:37:53,210 avoir une table de commentaires qui a le la structure que nous venons précisé. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Donc, comme avant, nous sommes va créer un nouveau modèle 644 00:37:59,610 --> 00:38:04,450 à l'abstrait la table SQL que nous venons de créer. 645 00:38:04,450 --> 00:38:05,450 >> Donc, nous allons ajouter un nouveau fichier. 646 00:38:05,450 --> 00:38:06,908 Nous allons appeler comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 Et ce qui se passe réellement à être assez simple avec un léger changement 649 00:38:15,490 --> 00:38:17,520 de ce que nous avions avant. 650 00:38:17,520 --> 00:38:22,790 Donc classe Commentaire étend Eloquent. 651 00:38:22,790 --> 00:38:25,930 Et ce que nous allons à faire ici est de définir 652 00:38:25,930 --> 00:38:31,360 une fonction qui est la relation avec d'autres modèles. 653 00:38:31,360 --> 00:38:39,250 Nous allons donc avoir une fonction de poste ici que renvoie cette relation. 654 00:38:39,250 --> 00:38:43,330 Nous sommes donc en précisant que cela appartient à poster, 655 00:38:43,330 --> 00:38:49,200 disant qu'il ya un poste que ce commentaire appartient. 656 00:38:49,200 --> 00:38:53,917 >> Cela a en fait pour être P majuscule pour le modèle. 657 00:38:53,917 --> 00:38:56,500 Et maintenant, juste de l'autre bascule côté, nous devons dire que, hey. 658 00:38:56,500 --> 00:38:58,160 Messages ont des commentaires. 659 00:38:58,160 --> 00:39:03,030 Donc, ce que nous allons faire est définir des commentaires de la fonction publique. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 Et ici est retourné Cela a de nombreux Commentaire. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Alors maintenant, magie quand nous avons un poste, nous pouvons obtenir les commentaires d'attributs 664 00:39:22,010 --> 00:39:25,615 et il va le remplir avec le des informations de la base de données. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Donc, nous allons effectivement passer et ajouter une nouvelle fonctionnalité à notre fichier de vue 667 00:39:38,220 --> 00:39:43,600 afin que nous puissions à la fois affichage et créer des commentaires. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Donc, nous allons définir une nouvelle section. 670 00:39:56,865 --> 00:39:59,890 Disons simplement le séparent avec une règle horizontale. 671 00:39:59,890 --> 00:40:04,065 Section id = "commentaires". 672 00:40:04,065 --> 00:40:06,990 Ce que nous allons faire ici, ce est comme avant, 673 00:40:06,990 --> 00:40:09,880 parcourir tous les commentaires. 674 00:40:09,880 --> 00:40:12,960 Donc en fait la façon dont nous faisons ce est, comme je le disais, assez magique. 675 00:40:12,960 --> 00:40:14,440 >> Nous faisons poster des commentaires. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 Et alors nous pouvons le faire pour chaque boucle sur chacun des commentaires. 678 00:40:22,710 --> 00:40:25,740 Et ce que nous allons faire est div class commentaire, 679 00:40:25,740 --> 00:40:29,240 et nous allons effectivement imprimer ce commentaire. 680 00:40:29,240 --> 00:40:34,150 Donc afficher que hey, commenter name-- la personne 681 00:40:34,150 --> 00:40:38,080 qui a affiché cette comment-- dit dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Nous allons mettre cela en un bloc devis, il suffit pour le faire paraître belle. 683 00:40:41,240 --> 00:40:46,470 Et puis commenter bloc de contenu devis. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 Et foreach. 686 00:40:50,892 --> 00:40:53,100 Alors maintenant, cela va boucle à travers tous les commentaires 687 00:40:53,100 --> 00:40:56,500 qui est associé avec chacun des poteaux 688 00:40:56,500 --> 00:41:00,960 et afficher chacune de ces commentaires. 689 00:41:00,960 --> 00:41:05,120 Je vais ajouter une autre section bas ici, ce qui nous permet d'ajouter un commentaire. 690 00:41:05,120 --> 00:41:07,400 Classe afin h3. 691 00:41:07,400 --> 00:41:09,580 Mettez un titre ici. 692 00:41:09,580 --> 00:41:10,934 Ajouter un commentaire. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 Et nous allons définir une nouvelle forme. 695 00:41:15,700 --> 00:41:18,730 >> Donc, comme avant, nous sommes va faire form action. 696 00:41:18,730 --> 00:41:22,740 Et ici, la nouvelle action est que nous sommes va définir un nouveau contrôleur qui 697 00:41:22,740 --> 00:41:26,770 nous permet de répondre à poster les demandes de création de commentaires. 698 00:41:26,770 --> 00:41:33,365 Donc URL :: route createComment. 699 00:41:33,365 --> 00:41:37,730 Je vais passer dans le paramètre ici. 700 00:41:37,730 --> 00:41:40,380 L'ID de la poste qui nous créons commentaire sur. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 Puis le procédé de la présente forme va être après. 703 00:41:50,280 --> 00:41:57,240 >> Maintenant, nous allons ajouter dans un deux champs, forme un groupe. 704 00:41:57,240 --> 00:42:04,670 Cela va être une entrée avec le nommer "nom" et class = "forme-contrôle», 705 00:42:04,670 --> 00:42:14,250 type = "text", et avec le espace réservé = "Votre nom". 706 00:42:14,250 --> 00:42:19,380 Nous allons aussi à définir un autre champ de formulaire, qui 707 00:42:19,380 --> 00:42:22,970 va être un texte secteur que nous avions avant. 708 00:42:22,970 --> 00:42:25,480 Tout comme avant, appeler contenu. 709 00:42:25,480 --> 00:42:31,160 Class = "forme de contrôle." 710 00:42:31,160 --> 00:42:41,660 Espace réservé = "Ecris ici." 711 00:42:41,660 --> 00:42:44,100 >> Et juste pour que nous peut effectivement présenter, 712 00:42:44,100 --> 00:42:55,740 soumettre type et class = "btn btn-primaire." 713 00:42:55,740 --> 00:42:57,005 Fermez le formulaire. 714 00:42:57,005 --> 00:42:59,010 Fermer cette action. 715 00:42:59,010 --> 00:43:06,580 Alors maintenant, si nous rafraîchir la page où nous avons, par exemple, un poste particulier. 716 00:43:06,580 --> 00:43:10,310 Nous devons redémarrer le serveur. 717 00:43:10,310 --> 00:43:12,340 PHP artisan servir. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Redémarrez cela. 720 00:43:18,334 --> 00:43:19,500 Nous devons définir la voie. 721 00:43:19,500 --> 00:43:25,090 Mais pour l'instant, nous allons simplement prendre ce de telle sorte que nous pouvons vous montrer 722 00:43:25,090 --> 00:43:28,750 ce que la page ressemble, puis nous créons effectivement cette voie. 723 00:43:28,750 --> 00:43:29,250 Donc, hey. 724 00:43:29,250 --> 00:43:37,080 Nous avons cette nouvelle forme ici afin que nous puissions créer des commentaires. 725 00:43:37,080 --> 00:43:39,950 Donc, nous allons effectivement définir une fonction dans le contrôleur 726 00:43:39,950 --> 00:43:43,020 afin que nous puissions ajouter des commentaires. 727 00:43:43,020 --> 00:43:43,650 Revenons. 728 00:43:43,650 --> 00:43:48,420 Et au sein de blogcontroller.php, ce que nous allons faire 729 00:43:48,420 --> 00:43:51,620 est de créer une nouvelle fonction appelé créer commentaire. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Public createComment de fonction. 732 00:43:57,040 --> 00:44:00,130 Cela va avoir un seul paramètre, l'ID des messages 733 00:44:00,130 --> 00:44:02,280 que nous commentant. 734 00:44:02,280 --> 00:44:04,790 Et comme avant, nous sommes va d'abord obtenir le poste. 735 00:44:04,790 --> 00:44:10,790 Donc, poster, findOrfail id. 736 00:44:10,790 --> 00:44:15,020 Ensuite, nous allons pour créer un nouveau commentaire. 737 00:44:15,020 --> 00:44:18,880 Donc commenter = new Commentaire. 738 00:44:18,880 --> 00:44:26,820 Commentaire name = entrée :: get nom. 739 00:44:26,820 --> 00:44:39,420 contenu de commentaire = la même nouvelle ligne dans les pauses de l'entrée :: obtenir du contenu. 740 00:44:39,420 --> 00:44:43,460 >> Et enfin, nous allons avoir à associer ce commentaire à la poste. 741 00:44:43,460 --> 00:44:47,230 Nous allons donc utiliser cette fonction, commentaires, 742 00:44:47,230 --> 00:44:50,260 qui nous permet d'économiser cette relation. 743 00:44:50,260 --> 00:44:54,780 Alors maintenant, ce commentaire aura automatiquement l'ID de poste. 744 00:44:54,780 --> 00:44:57,640 Nous pourrions également le mettre manuellement, mais il se agit 745 00:44:57,640 --> 00:45:02,490 plus facile à lire autant que la fonction va. 746 00:45:02,490 --> 00:45:05,860 Et après que nous effectuons cela, ce que nous voulons faire 747 00:45:05,860 --> 00:45:10,840 est rediriger l'utilisateur vers le route indiquée par viewPost 748 00:45:10,840 --> 00:45:16,010 avec le tableau avec la paramètre de l'ID de poste. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> Et maintenant, de sorte que cette réalité fonctions, nous avons besoin de définir cette voie. 751 00:45:24,660 --> 00:45:27,126 Route :: poste. 752 00:45:27,126 --> 00:45:32,800 Et maintenant, nous allons appeler cette après slash slash ID commentaire. 753 00:45:32,800 --> 00:45:36,725 Tableau utilise la nouvelle fonction que nous venons de créer. 754 00:45:36,725 --> 00:45:37,350 BlogController. 755 00:45:37,350 --> 00:45:40,820 756 00:45:40,820 --> 00:45:44,770 CreateComment que createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Grande. 759 00:45:50,120 --> 00:45:56,150 >> Alors maintenant, je espère que si nous rafraîchir cette page et ajouter un commentaire, disons, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Espérons que cela fonctionne." 762 00:46:03,920 --> 00:46:05,216 Soumettre. 763 00:46:05,216 --> 00:46:09,050 Nous ne, en fait, avons un commenter sur ce blog. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Cool. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Alors maintenant, nous avons une assez fonctionnelle blog. 768 00:46:21,430 --> 00:46:23,180 Nous allons juste ajouter quelques réglages afin 769 00:46:23,180 --> 00:46:29,090 que nous avons un peu plus utiles informations sur ces postes. 770 00:46:29,090 --> 00:46:32,780 >> Donc, si nous revenons à la première page, nous ne avons pas de sens 771 00:46:32,780 --> 00:46:38,790 du nombre de commentaires sont sur chacun de ces postes. 772 00:46:38,790 --> 00:46:41,340 Donc, ce que nous allons en fait à faire est, à l'intérieur de notre modèle, 773 00:46:41,340 --> 00:46:51,250 définir une fonction d'assistance qui permet nous précisons le nombre de commentaires 774 00:46:51,250 --> 00:46:53,020 qui vont avec un poste particulier. 775 00:46:53,020 --> 00:46:56,050 Nous allons donc créer une fonction d'assistance. 776 00:46:56,050 --> 00:46:58,020 >> La fonction publique. 777 00:46:58,020 --> 00:46:58,770 GetNumCommentsStr. 778 00:46:58,770 --> 00:47:02,030 779 00:47:02,030 --> 00:47:07,180 Donc, une chaîne qui spécifie le nombre des commentaires qui vont avec. 780 00:47:07,180 --> 00:47:12,850 Et ce que nous allons faire, ce est dire que ce num = commentaires comptent. 781 00:47:12,850 --> 00:47:15,150 Donc, nous allons compter le nombre de commentaires. 782 00:47:15,150 --> 00:47:22,900 Et si ce nombre est égal à 1, nous sommes aller juste pour revenir 1 commentaire. 783 00:47:22,900 --> 00:47:28,890 Et puis sinon, nous voulons retourner la concaténation de num et commentaires, 784 00:47:28,890 --> 00:47:31,890 ainsi nous obtenons la pluralisation correcte. 785 00:47:31,890 --> 00:47:33,380 Juste faire une apostrophe. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Un commentaire. 788 00:47:37,640 --> 00:47:41,140 >> Et maintenant, nous pouvons utiliser cette fonction directement à l'intérieur de notre point de vue. 789 00:47:41,140 --> 00:47:44,510 Donc, si nous revenons à la les messages partiels que nous avons créé, 790 00:47:44,510 --> 00:47:49,370 maintenant, nous voulons effectivement afficher le nombre de commentaires. 791 00:47:49,370 --> 00:47:52,660 Donc, ce que nous pouvons faire, ce est poste, utiliser cette fonction 792 00:47:52,660 --> 00:47:57,230 que nous venons de créer à afficher le nombre de commentaires. 793 00:47:57,230 --> 00:48:00,440 Donc, si nous renouvelons aujourd'hui, il fait, en fait, affichage 794 00:48:00,440 --> 00:48:02,240 les commentaires de nombre qui vont de pair avec elle. 795 00:48:02,240 --> 00:48:05,320 >> Si nous voulions être compliqué si vous effectivement regarder le code de distribution, 796 00:48:05,320 --> 00:48:07,800 nous pouvons relier ce aux commentaires. 797 00:48:07,800 --> 00:48:17,040 Si vous vous souvenez, nous avons défini dans le voir que cela n'a section commentaires d'identité. 798 00:48:17,040 --> 00:48:22,460 Donc, si nous voulions vraiment relier directement à la section des commentaires, ce 799 00:48:22,460 --> 00:48:36,000 nous faisons ici est un href URL de la route viewPost. 800 00:48:36,000 --> 00:48:40,550 Passez à l'ID de tableau de la post ID. 801 00:48:40,550 --> 00:48:46,140 Et puis, nous voulons aller à spécifiquement la section des commentaires. 802 00:48:46,140 --> 00:48:49,900 >> Ici, nous allons fermer la balise A. 803 00:48:49,900 --> 00:48:52,950 Alors maintenant, si nous rafraîchir cette Cette page, on clique sur ce point. 804 00:48:52,950 --> 00:48:54,700 Nous allons passer directement aux la section des commentaires. 805 00:48:54,700 --> 00:48:57,580 Si nous avions un poste plus, vous pouvez réellement voir ce rebond vers le bas. 806 00:48:57,580 --> 00:49:02,668 Mais vous remarquerez que ce est pas au haut de la page. 807 00:49:02,668 --> 00:49:04,090 Cool. 808 00:49:04,090 --> 00:49:04,600 Grande. 809 00:49:04,600 --> 00:49:08,582 Donc, ce est un assez simple exemple de quelque chose de simple 810 00:49:08,582 --> 00:49:09,790 que vous pouvez faire avec Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Mais vous pouvez le constater ici que nous avons fait beaucoup de choses 812 00:49:13,230 --> 00:49:16,200 avec assez peu de quantité de code. 813 00:49:16,200 --> 00:49:19,420 Laravel nous permet de faire la requêtes SQL dans les coulisses. 814 00:49:19,420 --> 00:49:21,960 Il fait l'assainissement pour nous dans les coulisses. 815 00:49:21,960 --> 00:49:25,940 Nous permet de faire ces relations très facilement sans avoir besoin de nous 816 00:49:25,940 --> 00:49:33,350 à faire toute SQL rejoindre déclarations combiner commentaires avec ce que les messages. 817 00:49:33,350 --> 00:49:36,480 Nous permet de faire ce héritage de modèles 818 00:49:36,480 --> 00:49:43,780 de sorte que nous pouvons définir ces nidification fichiers de sorte que nous ne sont pas nous répéter, 819 00:49:43,780 --> 00:49:47,020 tout comme lorsque nous avons eu ce que affichage des messages de blog 820 00:49:47,020 --> 00:49:50,770 que nous ne avons pas à copier et coller le code. 821 00:49:50,770 --> 00:49:55,450 >> Et à partir de là, vous pouvez construire applications de plus en plus compliquées. 822 00:49:55,450 --> 00:49:58,370 Vous pouvez imaginer si nous voulu mettre en œuvre log-in, 823 00:49:58,370 --> 00:50:05,532 nous pourrions dire, faire intervenir une tierce partie cadre qui nous permet de faire cela. 824 00:50:05,532 --> 00:50:07,490 Il ya un tas d'entre eux qui sont vraiment, vraiment 825 00:50:07,490 --> 00:50:09,970 grande qui peut faire comme, récupération de mot de passe. 826 00:50:09,970 --> 00:50:14,450 Et il va vous envoyer un réinitialiser le mot de passe par courriel. 827 00:50:14,450 --> 00:50:18,260 Nous pouvons mettre en œuvre l'autorisation de sorte que je peux créer un poste, 828 00:50:18,260 --> 00:50:20,350 mais quelqu'un d'autre ne peut le modifier. 829 00:50:20,350 --> 00:50:24,610 Nous pouvons mettre en œuvre fonctionnalité pour supprimer les messages. 830 00:50:24,610 --> 00:50:28,160 >> Mais vous pouvez voir ici que nous avons assez tous les composants beaucoup rudimentaires 831 00:50:28,160 --> 00:50:31,640 à construire une vraiment, vraiment, applications web dynamiques et passionnantes. 832 00:50:31,640 --> 00:50:34,035 Donc, avec cela, je pense que nous sommes bons. 833 00:50:34,035 --> 00:50:35,720 Avez-vous les gars avez des questions? 834 00:50:35,720 --> 00:50:36,220 Oui? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3: Comment avez-vous obtenir du contenu statique? 836 00:50:38,090 --> 00:50:39,256 >> ERIC OUYANG: contenu statique. 837 00:50:39,256 --> 00:50:45,520 Donc, vous avez vu avant que lorsque nous avions ce droit ici, ce contenu de mise en page, 838 00:50:45,520 --> 00:50:49,625 Voir marque, nous avons eu cette sans ce tableau par la suite. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, nous avons eu cette comme un simple fichier statique. 841 00:50:59,152 --> 00:51:00,860 Donc, si nous ne transmettons pas quoi que ce soit long à elle, 842 00:51:00,860 --> 00:51:03,340 il va tout simplement rendre le HTML directement. 843 00:51:03,340 --> 00:51:09,240 Mais si nous passons dans ce associative tableau de messages, qui est dynamique 844 00:51:09,240 --> 00:51:12,950 tiré de la base de données, nous peut rendre la page dynamique. 845 00:51:12,950 --> 00:51:13,450 Cool. 846 00:51:13,450 --> 00:51:14,830 D'autres questions? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3: Comment compareriez-vous Laravel à peut-être quelques autres options? 849 00:51:19,720 --> 00:51:20,525 ERIC OUYANG: Bien sûr. 850 00:51:20,525 --> 00:51:21,025 Ouais. 851 00:51:21,025 --> 00:51:23,430 Donc Laravel est-- ce est un grand question-- 852 00:51:23,430 --> 00:51:26,190 une des nombreuses options pour les cadres web. 853 00:51:26,190 --> 00:51:31,160 Donc, Ruby on Rails est un qui est populaire. 854 00:51:31,160 --> 00:51:34,590 Je crois Twitter utilisé pour être mis en œuvre avec Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Je pense qu'ils ont depuis commutés. 856 00:51:37,600 --> 00:51:40,780 Il ya un autre appelé FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Donc, Ruby on Rails utilise le langage Ruby et met en œuvre un grand nombre des choses MVC 858 00:51:46,120 --> 00:51:48,200 que nous voyons ici. 859 00:51:48,200 --> 00:51:52,320 FuelPHP est un autre framework PHP. 860 00:51:52,320 --> 00:51:54,490 Django est un de mes favoris. 861 00:51:54,490 --> 00:51:57,010 Ce est un framework web pour Python. 862 00:51:57,010 --> 00:52:01,270 Ainsi, vous pouvez écrire votre application web en Python. 863 00:52:01,270 --> 00:52:03,760 Donc, il ya une tonne de ces options. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, je pense, par et grande est mon droit favori 865 00:52:06,170 --> 00:52:08,232 maintenant juste parce que PHP des composants 866 00:52:08,232 --> 00:52:09,440 dont nous avons parlé plus tôt. 867 00:52:09,440 --> 00:52:11,910 Ce est Compositeur activé. 868 00:52:11,910 --> 00:52:15,750 Il comprend un vraiment, vraiment système de ORM expressive. 869 00:52:15,750 --> 00:52:18,800 Dispose également d'un gabarit vraiment génial langue que quelques-unes des autres 870 00:52:18,800 --> 00:52:20,630 juste ne fournit pas. 871 00:52:20,630 --> 00:52:21,400 Et les migrations. 872 00:52:21,400 --> 00:52:23,432 Les migrations sont aussi exceptionnel. 873 00:52:23,432 --> 00:52:24,860 Cool? 874 00:52:24,860 --> 00:52:25,390 Impressionnant. 875 00:52:25,390 --> 00:52:27,560 Eh bien, merci beaucoup pour regarder ce séminaire, 876 00:52:27,560 --> 00:52:30,650 et bonne chance dans vos projets finaux. 877 00:52:30,650 --> 00:52:31,616