1 00:00:00,000 --> 00:00:02,538 >> [Musikwiedergabe] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Hey, jeder. 4 00:00:12,390 --> 00:00:13,580 Willkommen. 5 00:00:13,580 --> 00:00:16,860 Dies ist Erstellen dynamischer Web Apps mit Laravel. 6 00:00:16,860 --> 00:00:18,290 Mein Name ist Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Ich bin ein College-Student studieren Sozialkunde mit einer sekundären in Informatik, 8 00:00:23,860 --> 00:00:27,290 und ich lebe in Adams Haus hier in Harvard. 9 00:00:27,290 --> 00:00:33,340 >> So Laravel, bei seiner Kern, ist ein MVC Web-App-Framework. 10 00:00:33,340 --> 00:00:38,265 So mögen, was Sie Jungs haben wurde mit CS50 Finanzen zu tun, 11 00:00:38,265 --> 00:00:42,480 Laravel ist ein Framework, ermöglicht Sie dynamische Web-Anwendungen zu erstellen. 12 00:00:42,480 --> 00:00:47,710 So können Sie es in einigen Sinnen denken als Erweiterung der Art des Materials 13 00:00:47,710 --> 00:00:50,470 Sie haben in CS50 getan Finanzen, sondern ein System, das ist 14 00:00:50,470 --> 00:00:55,890 viel robuster, viele eleganter in mancher Hinsicht, 15 00:00:55,890 --> 00:00:57,870 und stellt eine Menge von Funktionen für Sie 16 00:00:57,870 --> 00:01:03,060 ziemlich komplex zu bauen Web-Anwendungen. 17 00:01:03,060 --> 00:01:05,010 Also lassen Sie uns über einige gehen der Hauptmerkmale, 18 00:01:05,010 --> 00:01:09,550 und dann werden wir in ein tauchen Beispiel für den Aufbau einer Blog 19 00:01:09,550 --> 00:01:12,500 Anwendung mit Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Damit wird eines der ersten Dinge, die unterscheidet es von MVC Art der Arbeit 21 00:01:16,700 --> 00:01:22,100 Sie habe mit CS50 getan ist es ein ORM-Engine enthält. 22 00:01:22,100 --> 00:01:27,410 So ORM steht für Objekt relationales Mapping. 23 00:01:27,410 --> 00:01:31,080 So diese Weise können Sie bauen eine Schicht der Abstraktion 24 00:01:31,080 --> 00:01:35,230 zwischen der Datenbank und Ihre Steuerungen. 25 00:01:35,230 --> 00:01:39,150 In CS50 Finance, wo also im Gegensatz zu die sie machen Anfragen, 26 00:01:39,150 --> 00:01:44,790 die ORM-Schicht ermöglicht es Ihnen, abstrakt, dass ab und zu erstellen 27 00:01:44,790 --> 00:01:48,085 Modelle, die mächtiger als es Sie können direkt mit SQL-Abfragen. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Eine andere Sache, die wirklich ist hilfreich vererbbar Vorlagen. 30 00:01:53,510 --> 00:01:58,990 So werden Sie in CS50 Finanzen bemerken, Sie am Ende umgeschrieben, eine Menge Dinge, 31 00:01:58,990 --> 00:02:03,150 wo legt man könnte potenziell Wiederverwendung Dinge, die Sie nicht in der Lage sind. 32 00:02:03,150 --> 00:02:08,539 Also hier in Laravel, die Sie verwenden können, was wie die Klinge Template-Engine bekannt 33 00:02:08,539 --> 00:02:10,530 ein Master-Layout erstellen. 34 00:02:10,530 --> 00:02:15,840 Und von dort, die Sie übernehmen können so dass die Sub-Templates kann tatsächlich 35 00:02:15,840 --> 00:02:21,210 sind Elemente innerhalb dass größere Basisvorlage. 36 00:02:21,210 --> 00:02:21,810 >> Migration. 37 00:02:21,810 --> 00:02:29,010 Das ist also eine ziemlich Standard-Funktionen auf die meisten modernen Web Application Frameworks. 38 00:02:29,010 --> 00:02:32,710 Also das können Sie darstellen Datenbankschema Änderungen im Code. 39 00:02:32,710 --> 00:02:39,200 Also, ohne zu sagen, phpMyAdmin, können Sie tatsächlich diese Migrationen erstellen 40 00:02:39,200 --> 00:02:44,660 wo Sie Betreiber der Datenbank Schema-Änderungen in Code direkt. 41 00:02:44,660 --> 00:02:48,070 Und das können Sie besonders zu-- Wenn Sie mehrere Mitarbeiter haben 42 00:02:48,070 --> 00:02:52,650 auf derselben Bahn application-- verfolgen diese Änderungen, 43 00:02:52,650 --> 00:02:55,380 sagen in GitHub oder einem anderen Repository. 44 00:02:55,380 --> 00:03:00,880 >> Also das ist wirklich hilfreich und verringert die Notwendigkeit 45 00:03:00,880 --> 00:03:04,580 , sagen wir, übergeben um eine Menge von SQL-Dumps. 46 00:03:04,580 --> 00:03:07,140 Und schließlich ist Composer etwas wirklich, wirklich nützlich 47 00:03:07,140 --> 00:03:09,840 , mit dem Sie andere zu bedienen Code der Menschen zu genial Dinge zu tun. 48 00:03:09,840 --> 00:03:14,020 So Laravel als strukturiert mehrere Komponisten Pakete. 49 00:03:14,020 --> 00:03:17,870 So sagen, wenn Sie bringen wollte in einem Authentifizierungspaket 50 00:03:17,870 --> 00:03:23,440 oder wenn Sie wollte in einigen bringen Art von Generator-Skript oder einem Admin 51 00:03:23,440 --> 00:03:26,910 Schnittstelle, die Sie einstecken und spielen können diese Komponenten mit Composer. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Also fangen wir an. 54 00:03:31,570 --> 00:03:35,185 Haben Sie Fragen, von Ihnen Jungs, bevor wir loslegen? 55 00:03:35,185 --> 00:03:36,500 Keine Fragen? 56 00:03:36,500 --> 00:03:37,490 Kühle. 57 00:03:37,490 --> 00:03:39,990 Der erste Schritt ist, Installation Komponist. 58 00:03:39,990 --> 00:03:43,590 So Composer ermöglicht es Ihnen, Verwaltung von Abhängigkeiten, 59 00:03:43,590 --> 00:03:47,770 ob es die Laravel Rahmen oder eine andere dritte Partei-Erweiterung. 60 00:03:47,770 --> 00:03:50,400 Der erste Befehl erlaubt Sie Komponist downloaden, 61 00:03:50,400 --> 00:03:55,890 und der zweite Befehl ermöglicht es Ihnen, verschieben Sie sie in Ihrem lokalen Ordner bin 62 00:03:55,890 --> 00:04:01,340 so dass Sie Composer ausführen direkt durch den Kontakt. 63 00:04:01,340 --> 00:04:05,405 >> Danach gehen Sie vor und erstellen Sie eine neue Laravel Projekt. 64 00:04:05,405 --> 00:04:07,280 Wir sind eigentlich los, um verwenden einige Beispiel-Code 65 00:04:07,280 --> 00:04:10,760 dass ich zusammen um diesen Blog zu erstellen. 66 00:04:10,760 --> 00:04:14,420 Aber wenn Sie den Start sind Kratzer, Sie diesen Befehl verwenden würde 67 00:04:14,420 --> 00:04:18,160 hier oben Komponisten erstellen Projekt Laravel Slash Laravel und dann 68 00:04:18,160 --> 00:04:19,940 der Name des Projekts. 69 00:04:19,940 --> 00:04:22,275 Und das wird auch all die Verteilung Code 70 00:04:22,275 --> 00:04:23,733 für die Gründung eines neuen Laravel Projekt. 71 00:04:23,733 --> 00:04:28,870 Also für Ihre CS50 Abschlussarbeiten, werden Sie wahrscheinlich wollen, um diesen Befehl zu verwenden. 72 00:04:28,870 --> 00:04:31,210 >> Aber wir werden, um mit diesem zu starten. 73 00:04:31,210 --> 00:04:34,630 Also, wenn du getan hast dass Sie bekommen werden 74 00:04:34,630 --> 00:04:40,190 eine ziemlich umfangreiche Anzahl Dateien in blog50. 75 00:04:40,190 --> 00:04:43,840 Also lasst uns einfach durchgehen einige dieser Komponenten. 76 00:04:43,840 --> 00:04:49,060 Sie werden auf diesem Weg feststellen, Verzeichnis gibt es eine App-Ordner. 77 00:04:49,060 --> 00:04:52,960 Innerhalb des Anwendungsordner starten, gibt es ein paar hilfreich Ordner. 78 00:04:52,960 --> 00:04:56,330 Zu beachten ist, mit zu beginnen ist dieser Ordner config. 79 00:04:56,330 --> 00:04:59,210 So setzt dieser sich wie Ihre Web-Anwendung ist 80 00:04:59,210 --> 00:05:04,350 werde, sagen wir, zu authentifizieren Personen oder Geld Dinge oder eine Verbindung zur Datenbank. 81 00:05:04,350 --> 00:05:06,400 >> Und was ist wirklich hilfreich ist, dass Laravel 82 00:05:06,400 --> 00:05:09,130 ermöglicht Ihnen die Einrichtung unterschiedlicher Entwicklungsumgebungen. 83 00:05:09,130 --> 00:05:12,090 Also, was wir hier tun, ist, wenn wir gehen unter dem lokalen Ordner, 84 00:05:12,090 --> 00:05:14,720 es gibt eine database.php Datei. 85 00:05:14,720 --> 00:05:18,320 Und Sie werden hier feststellen, dass wir Einrichtung einer MySQL-Verbindung, die 86 00:05:18,320 --> 00:05:22,230 ermöglicht es Einzelpersonen, verbinden mit dem MySQL-Server, der ist 87 00:05:22,230 --> 00:05:24,310 direkt am CS50-Appliance. 88 00:05:24,310 --> 00:05:26,980 Und wir sind zu einer Datenbank verbinden dass ich aufgerufen Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Lassen Sie uns also wirklich voran gehen und führen Sie den Arbeits Version davon, 91 00:05:37,085 --> 00:05:39,710 nur um ein Gefühl für die Get Anwendung, die wir bauen 92 00:05:39,710 --> 00:05:41,390 aussieht. 93 00:05:41,390 --> 00:05:46,150 So habe ich eine Kopie Diese Blog50 abgeschlossen. 94 00:05:46,150 --> 00:05:51,910 So Laravel tatsächlich hat in einem Server eingebaut 95 00:05:51,910 --> 00:05:53,910 dass Sie direkt ausführen kann von der Kommandozeile. 96 00:05:53,910 --> 00:05:56,900 Dies ist also ähnlich der PSet vor, wenn Sie tatsächlich 97 00:05:56,900 --> 00:06:00,580 bauen Sie Ihre eigenen Server in C So haben sie eine in so gebaut 98 00:06:00,580 --> 00:06:04,010 dass Sie Ihre Laravel Anwendungen laufen direkt von der Kommandozeile. 99 00:06:04,010 --> 00:06:11,650 >> Also, wenn wir tun, php Handwerker zu dienen, diese einen Entwicklungsserver zu starten 100 00:06:11,650 --> 00:06:13,880 auf Port 8000. 101 00:06:13,880 --> 00:06:18,250 Also, wenn wir zum lokalen Host 8000, werden Sie feststellen, dass, hey. 102 00:06:18,250 --> 00:06:20,800 Wir haben in unserem Blog und läuft. 103 00:06:20,800 --> 00:06:25,090 So Laravel hier erzeugt die Titelseite in unserem Blog. 104 00:06:25,090 --> 00:06:26,350 Sehr einfache Anwendung. 105 00:06:26,350 --> 00:06:28,610 Aber es gibt ein paar wirklich nette Features 106 00:06:28,610 --> 00:06:31,346 darin, dass sie unter der Haube. 107 00:06:31,346 --> 00:06:33,680 >> So ist die Blog-Anwendung unkompliziert. 108 00:06:33,680 --> 00:06:36,430 Wenn wir einen Beitrag zu erstellen wollte, Wir können auf diese Schaltfläche klicken. 109 00:06:36,430 --> 00:06:40,470 Wir können sagen: "Hey, jeder. 110 00:06:40,470 --> 00:06:44,530 Dies ist ein wirklich Spaß Seminar "zum Beispiel. 111 00:06:44,530 --> 00:06:46,560 Und etwas zu schreiben hier unten. 112 00:06:46,560 --> 00:06:48,180 Text hier. 113 00:06:48,180 --> 00:06:51,327 Wenn wir auf Submit, werden Sie feststellen, dass unser neuer Blog 114 00:06:51,327 --> 00:06:53,410 Beitrag wurde auf die hinzugefügt Titelseite des Blogs. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Wenn wir wieder hierher kommen, werden Sie feststellen, dass es wurden einige Kommentare bereits 117 00:06:59,970 --> 00:07:01,160 auf dem Blog. 118 00:07:01,160 --> 00:07:03,630 Wenn wir also nach unten scrollen, werden Sie feststellen, dass Jonathan Tan sagt, 119 00:07:03,630 --> 00:07:08,020 dass er war sehr beeindruckt von diesem Post fasziniert. 120 00:07:08,020 --> 00:07:11,570 >> Also werden wir in, wie Objekt gelangen, relationales Mapping erlaubt 121 00:07:11,570 --> 00:07:16,668 Sie, diese Beziehungen in zu tun ein ziemlich nahtlos als gut. 122 00:07:16,668 --> 00:07:17,660 Kühle. 123 00:07:17,660 --> 00:07:20,290 Haben Sie Fragen zu Funktionalität von, was wir zu bauen? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Kühle. 126 00:07:23,840 --> 00:07:28,170 Also lassen Sie uns beginnen mit tatsächlich Erstellung der Datenbanktabellen. 127 00:07:28,170 --> 00:07:33,190 >> So erinnern daran, dass in CS50 Finanzen, Sie legte eine Tabelle zusammen für die Benutzer 128 00:07:33,190 --> 00:07:37,100 sowie für die Aktien in Ihrem Portfolio. 129 00:07:37,100 --> 00:07:41,040 So, wie wir bereits erwähnt, was wir in Laravel 130 00:07:41,040 --> 00:07:43,090 ist etwas, wie Migrationen bekannt. 131 00:07:43,090 --> 00:07:48,570 Also, wenn wir wieder in die Verteilung Code hier, 132 00:07:48,570 --> 00:07:51,790 der erste Befehl, der ist hilfreich, dass Laravel bietet Ihnen 133 00:07:51,790 --> 00:07:54,240 ist dieser Befehl migrieren. 134 00:07:54,240 --> 00:07:59,220 So können wir PHP-Handwerker migrieren: machen. 135 00:07:59,220 --> 00:08:01,760 So ermöglicht es uns, eine Migrations erstellen. 136 00:08:01,760 --> 00:08:03,710 >> Und dann werden wir möchten um eine Migration zu erstellen 137 00:08:03,710 --> 00:08:07,050 genannt create_posts_table, die gehen 138 00:08:07,050 --> 00:08:11,521 Wo werden wir zu gehen ist die Speicherung unserer Blog-Posts. 139 00:08:11,521 --> 00:08:14,690 Und Sie werden hier feststellen, dass es läuft durch einige Code, der tatsächlich 140 00:08:14,690 --> 00:08:17,580 erzeugt eine Datei mit ein Zeitstempel auf sie. 141 00:08:17,580 --> 00:08:22,260 Also, wenn wir gehen und schauen Database, wir werden unter Migrationen merken 142 00:08:22,260 --> 00:08:24,830 dass es erstellt ein leere Datei für uns die 143 00:08:24,830 --> 00:08:30,100 hat Standardcode mit dem Namen dass wir angegeben, erstellen Beiträge Tisch. 144 00:08:30,100 --> 00:08:31,670 >> Und es hat zwei Funktionen darin. 145 00:08:31,670 --> 00:08:40,539 Up ist das, was wir, wenn die ausgeführt werden soll Migration in die Datenbank übernommen. 146 00:08:40,539 --> 00:08:46,380 Und unten ist, was wir tun werden wenn wir wollen, um eine Migration rückgängig zu machen. 147 00:08:46,380 --> 00:08:49,890 So, hier lassen Sie uns beginnen mit Schreiben dieser Migration. 148 00:08:49,890 --> 00:08:55,480 Es gibt also eine Klasse hilfreich in Laravel genannte Schema. 149 00:08:55,480 --> 00:08:57,910 >> Wir werden also zu laufen Schema :: erstellen. 150 00:08:57,910 --> 00:09:01,080 Und wir werden zu erstellen eine Tabelle namens Beiträge. 151 00:09:01,080 --> 00:09:05,980 Und hier mit Hilfe einer Funktion wenden wir diese. 152 00:09:05,980 --> 00:09:11,010 Und innerhalb von hier, wir gehen, um tatsächlich geben Sie die Inhalte unserer Tabelle. 153 00:09:11,010 --> 00:09:14,860 Wir werden eine ID zu erstellen, Das ist die automatische Inkrementierung. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Darüber hinaus werden wir um ein Feld zu erstellen, dass 156 00:09:24,350 --> 00:09:27,060 stellt den Titel unserer Blog-Post. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Wir werden auch, um ein Feld zu erstellen zum Speichern der Text unserer Blog-Post. 159 00:09:36,950 --> 00:09:40,600 Und schließlich werden wir einige Zeitstempel speichern 160 00:09:40,600 --> 00:09:44,690 denn wenn unser Beitrag erstellt wurde und wenn es aktualisiert. 161 00:09:44,690 --> 00:09:46,240 Und für sich, ist es ziemlich einfach. 162 00:09:46,240 --> 00:09:53,974 Alles, was wir wollen, ist Drop die Tabelle, die wir erstellt haben. 163 00:09:53,974 --> 00:09:54,930 >> Großartig. 164 00:09:54,930 --> 00:09:55,850 Haben Sie Fragen? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 So, jetzt, wenn wir weitermachen und-- eigentlich lokalen Host, 167 00:10:07,110 --> 00:10:09,640 Lassen Sie mich zu löschen, was wir früher hatten. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Zum Datenbanken. 170 00:10:15,190 --> 00:10:17,640 Ich werde zu löschen, was wir früher hatten. 171 00:10:17,640 --> 00:10:22,870 Löschen Sie diese und erstellen eine neue Datenbank Blog50. 172 00:10:22,870 --> 00:10:24,930 So, jetzt, was die magische Teil ist hier, dass wir 173 00:10:24,930 --> 00:10:28,760 können diese Migrationen direkt anwenden auf die Datenbank über die Befehlszeile 174 00:10:28,760 --> 00:10:29,290 Tool. 175 00:10:29,290 --> 00:10:35,100 Also, wenn wir tun, php Handwerker migrieren, Sie werden bemerken, dass, hey. 176 00:10:35,100 --> 00:10:38,320 Es ist die Migrationstabelle erstellt, die wir einen Blick auf ein wenig zu nehmen, 177 00:10:38,320 --> 00:10:40,540 und es ist angewendet diese erste Migration. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Also schauen wir uns Blog50, werden Sie feststellen, dass es für uns erstellt zwei Tabellen. 180 00:10:48,920 --> 00:10:50,300 Zunächst ist diese Migrationen Tisch. 181 00:10:50,300 --> 00:10:54,130 Wenn wir also sehen diese, werden Sie feststellen, dass Diese Tabelle ist recht einfach. 182 00:10:54,130 --> 00:10:55,490 Es ist nur, dass, hey. 183 00:10:55,490 --> 00:10:58,960 Wir haben diese Migration angewendet. 184 00:10:58,960 --> 00:11:01,470 Wir gehen zurück und betrachten Sie Beiträge. 185 00:11:01,470 --> 00:11:05,720 Sie werden feststellen, dass die Struktur Genau das haben wir sie gebeten hatte. 186 00:11:05,720 --> 00:11:07,350 Wir haben einen automatischen Identifikation. 187 00:11:07,350 --> 00:11:10,450 Wir haben eine Zeichenfolge zum Speichern der Titel, und ein Textfeld 188 00:11:10,450 --> 00:11:11,450 zum Speichern der Inhalte. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Großartig. 191 00:11:14,706 --> 00:11:15,560 Kühle. 192 00:11:15,560 --> 00:11:21,626 Haben Sie Fragen zu Migration Arbeit, wie wir sie an? 193 00:11:21,626 --> 00:11:22,126 Nein? 194 00:11:22,126 --> 00:11:23,600 Kühle. 195 00:11:23,600 --> 00:11:26,630 So, jetzt werden wir weitermachen und tatsächlich schaffen Sie das Modell. 196 00:11:26,630 --> 00:11:33,100 So einen Pfosten Modell erstellen möchten wir, dass speichert eine Abstraktion der Datenbank. 197 00:11:33,100 --> 00:11:41,040 Also anstatt sich MySQL-Abfragen direkt, wir werden zu erstellen. 198 00:11:41,040 --> 00:11:45,840 Also müssen wir eine erzeugen Ordner im hier genannten Modelle. 199 00:11:45,840 --> 00:11:48,905 Und innen hier, wir sind zu gehen eine Datei namens post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Innerhalb dieser PHP-Datei, wir werden zu erstellen 202 00:11:54,550 --> 00:12:00,590 eine Klasse nach der beredte erstreckt. 203 00:12:00,590 --> 00:12:08,950 Eloquent ist der Name des ORM Motor, Laravel bietet. 204 00:12:08,950 --> 00:12:12,799 Und hier können wir erwarten, dass Sie tatsächlich benötigen, um einen Code zu schreiben. 205 00:12:12,799 --> 00:12:14,840 Wir werden einige schreiben Hilfsfunktionen später. 206 00:12:14,840 --> 00:12:19,420 Aber aus der Box, wird dies bereits erkennen, was in der Datenbank 207 00:12:19,420 --> 00:12:24,770 und wir können zugreifen, also den Text unserer Blog-Post oder den Titel, 208 00:12:24,770 --> 00:12:29,230 und direkt zu erstellen Zeug so ziemlich kein Code zu löschen. 209 00:12:29,230 --> 00:12:31,110 >> Also das ist eine der zauberhaften Komponenten. 210 00:12:31,110 --> 00:12:34,980 Und Wind einmal dieser Klasse mehr vollwertige, 211 00:12:34,980 --> 00:12:40,480 wir werden Informationen zu enthalten, was es ist im Zusammenhang, so die Kommentare. 212 00:12:40,480 --> 00:12:42,310 Auch eine Funktion so können wir wirklich 213 00:12:42,310 --> 00:12:46,340 direkt zu der URL von einem Blog-Post-Seite. 214 00:12:46,340 --> 00:12:46,840 Kühle. 215 00:12:46,840 --> 00:12:47,881 Haben Sie Fragen dazu? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Nein. 218 00:12:51,832 --> 00:12:54,100 Kühle. 219 00:12:54,100 --> 00:12:57,860 >> So, jetzt, wenn wir unser Modell haben wir wollen einen Controller, der es schaffen 220 00:12:57,860 --> 00:13:02,340 in der Lage, mit diesem Model-Schnittstelle, und anschließend die Datenbank. 221 00:13:02,340 --> 00:13:05,540 Wenn wir also einen Blick auf BlogController, werden Sie 222 00:13:05,540 --> 00:13:08,490 feststellen, dass es gibt nicht viel hier und jetzt. 223 00:13:08,490 --> 00:13:13,220 Alle es ist ein Index-Funktion dass generiert die Homepage, 224 00:13:13,220 --> 00:13:18,220 aber ohne etwas zu dort noch anzeigen. 225 00:13:18,220 --> 00:13:20,560 >> So die erste Funktion dass wir gehen, um zu erstellen 226 00:13:20,560 --> 00:13:25,790 ist eine, die uns erlaubt um einen Blog-Post zu schaffen. 227 00:13:25,790 --> 00:13:30,540 So werden wir ein zu erklären neue Funktion newPost. 228 00:13:30,540 --> 00:13:36,430 Und innen hier einfach, wir gehen um das Layout der Seite eingestellt 229 00:13:36,430 --> 00:13:41,850 sein ein Render Version, wenn Sie von CS50 erinnern, 230 00:13:41,850 --> 00:13:48,020 dieser Vorlage genannt blog.new, die wir werden in ein wenig zu schaffen. 231 00:13:48,020 --> 00:13:53,170 >> Sie werden hier in Zeile sechs Beachten Sie, dass wir diese Variable festgelegt, das Layout. 232 00:13:53,170 --> 00:13:55,820 Und wenn wir einen Blick am Ansichten Ordner, 233 00:13:55,820 --> 00:14:01,640 gibt es einen Layouts Ordner, die enthält eine sehr einfache HTML-Datei. 234 00:14:01,640 --> 00:14:04,680 Und der Anmerkung, werden Sie feststellen, dass wir diesen Container haben 235 00:14:04,680 --> 00:14:06,800 hier die Inhalte ergibt. 236 00:14:06,800 --> 00:14:09,460 So Innere unserer Vorlage was wir tun werden 237 00:14:09,460 --> 00:14:16,180 ist zu erstellen, was los zu sein direkt in diesem Layout ersetzt. 238 00:14:16,180 --> 00:14:20,060 >> Also sagten wir, dass wir zu machen möchten eine Vorlage namens blog.new. 239 00:14:20,060 --> 00:14:23,790 Aber innerhalb der Blog, gibt es noch nicht die neue Vorlage. 240 00:14:23,790 --> 00:14:26,910 So werden wir ein erstellen Datei mit dem Namen new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Das zeigt, dass Laravel Diese PHP-Datei sollte 242 00:14:29,860 --> 00:14:31,720 mit der gerendert werden Klinge Template-Engine. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Das ist also eine ziemlich einfache Datei. 245 00:14:42,630 --> 00:14:46,690 Es wird das Formular, mit dem sein wir tatsächlich in einem Blog-Eintrag hinzufügen. 246 00:14:46,690 --> 00:14:49,220 >> Also die Magie hier aus die Vererbung ist, dass, hey. 247 00:14:49,220 --> 00:14:52,950 Wir wollen, dass die angeben Abschnitt, dem Inhaltsbereich 248 00:14:52,950 --> 00:14:56,640 hier, die abgegrenzt ist vonsection undstop. 249 00:14:56,640 --> 00:15:02,260 Also, was ist dazwischen hier an gehen in die Master-Layout ersetzt werden. 250 00:15:02,260 --> 00:15:07,000 Und hier, was wir wollen, ist sehr erstellen Sie einfach eine neue HTML-Datei. 251 00:15:07,000 --> 00:15:08,690 Lassen Sie einfach einen schnellen Titel. 252 00:15:08,690 --> 00:15:09,600 Fügen Sie einen Blog-Post. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 Und darin sind wir werde ein Formular erstellen. 255 00:15:15,390 --> 00:15:19,197 >> Diese Form wird, um eine Aktion zu haben. 256 00:15:19,197 --> 00:15:21,780 Und das wird etwas sein, dass wir ersetzen in später 257 00:15:21,780 --> 00:15:24,200 und wir werden sehen, wie Routing passt in hier. 258 00:15:24,200 --> 00:15:33,600 Aber wir sind gerade dabei, für jetzt zu definieren dass diese geht zu einem URL mit dem Routen 259 00:15:33,600 --> 00:15:34,860 von erstelleBeitrag. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 Und das wird Verfahren zur Post haben. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 Im hier, wir gehen zwei Felder haben. 264 00:15:47,590 --> 00:15:49,170 Div class = "Form-Gruppe". 265 00:15:49,170 --> 00:15:55,806 >> Wir sind mit dem Bootstrap CSS Bibliothek freundlicherweise von Twitter zur Verfügung gestellt. 266 00:15:55,806 --> 00:15:57,720 So werden wir zwei von diesen zu erstellen. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Also das erste Eingang werde der Titel sein. 269 00:16:05,970 --> 00:16:08,437 So input name = "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 Ich werde einen Platzhalter = "Titel" hinzufügen. 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> Und dann die zweite ist wird ein Textfeld sein. 276 00:16:26,140 --> 00:16:27,827 Name = "content". 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 Und Platzhalter = "hier schreiben". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Dort gehen wir. 282 00:16:43,480 --> 00:16:46,760 Schließlich werden wir zu gehen Eine schnelle Submit-Button. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-primary". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Das sind also alle Merkmale der Bootstrap so 286 00:16:55,340 --> 00:16:58,510 dass diese gelegt werden können in einer Weise, dass es 287 00:16:58,510 --> 00:17:03,730 Beute für den Benutzer, anstatt bloßem HTML. 288 00:17:03,730 --> 00:17:06,250 >> Also haben wir den Controller hier definiert haben. 289 00:17:06,250 --> 00:17:08,930 Wir haben ein sehr einfaches View definiert. 290 00:17:08,930 --> 00:17:12,339 Was aber noch fehlt, ist das Bindegewebe. 291 00:17:12,339 --> 00:17:15,420 Also an dieser Stelle, Laravel hat keine Ahnung, wie 292 00:17:15,420 --> 00:17:18,312 wir werden tatsächlich besuchen Sie diesen Controller. 293 00:17:18,312 --> 00:17:20,270 Das ist also in eine definierte Datei mit dem Namen routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 Und gerade jetzt, haben wir einen Weg. 296 00:17:24,310 --> 00:17:29,060 Das ist, wenn wir gehen, um die Home-Pfad für diese Website, 297 00:17:29,060 --> 00:17:33,140 es geht zu machen der Index-Controller. 298 00:17:33,140 --> 00:17:38,880 Hier also, was wir tun müssen, ist zu implementieren ein neuer Weg für uns, einen Beitrag erstellen. 299 00:17:38,880 --> 00:17:41,910 >> So verwenden wir diese Methode zu erhalten, die angibt, 300 00:17:41,910 --> 00:17:48,650 dass, wenn ein Benutzer versucht, erhalten diese page-- spezifisch 301 00:17:48,650 --> 00:17:52,850 die Post Slash neue page-- was wir tun werden 302 00:17:52,850 --> 00:18:02,060 ist mit dem Controller aufrufen BlogController neuen Beitrag. 303 00:18:02,060 --> 00:18:03,460 Die eine, die wir gerade erstellt. 304 00:18:03,460 --> 00:18:08,090 Und dann werden wir um es als newPost Pseudonyms gestattet. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Wir werden ein weiteres erstellen Funktion in ein wenig. 307 00:18:19,850 --> 00:18:23,520 Aber was ist hier unter der Schlüssel ", wie" ist das, was 308 00:18:23,520 --> 00:18:28,195 Wir können innerhalb ersetzen unsere Blade-Vorlagen. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 So jetzt, lasst uns eigentlich auch sagen Route. 311 00:18:36,230 --> 00:18:38,380 So werden wir auch einen Controller zu erstellen 312 00:18:38,380 --> 00:18:41,020 damit wir diese Stellen zu schaffen. 313 00:18:41,020 --> 00:18:46,940 Also, wenn ein Benutzer Beiträge zu der Seite Beitrag Slash neues, was wir tun werden 314 00:18:46,940 --> 00:18:51,350 ist verwendet einen Controller, wir werden in Kürze erstellen 315 00:18:51,350 --> 00:18:56,160 genannt BlogController bei erstelleBeitrag. 316 00:18:56,160 --> 00:19:01,929 Und wir gehen, um Alias- dies mit als erstelleBeitrag. 317 00:19:01,929 --> 00:19:03,380 Kühle. 318 00:19:03,380 --> 00:19:05,811 >> Haben Sie Fragen? 319 00:19:05,811 --> 00:19:06,310 Kühle. 320 00:19:06,310 --> 00:19:09,790 Also lassen Sie uns laufen, was wir bisher haben. 321 00:19:09,790 --> 00:19:16,930 Also, wenn wir tun, php Handwerker zu dienen, wir werden sehen, viele Fehler. 322 00:19:16,930 --> 00:19:20,385 So wie es aussieht haben wir eine Syntax-Fehler auf Strecken Linie 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Fehlt ein Semikolon. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Also, wenn wir gehen, um 8000, Sie werden nichts sehen hier noch. 327 00:19:32,870 --> 00:19:34,740 Das ist also die Standard-Homepage. 328 00:19:34,740 --> 00:19:37,730 >> Aber wenn wir gehen, um zu Posten Slash neue, hey. 329 00:19:37,730 --> 00:19:40,425 Es wird die Form, die wir gerade erstellt haben. 330 00:19:40,425 --> 00:19:42,550 Im Moment haben wir nicht die Funktionalität implementiert 331 00:19:42,550 --> 00:19:44,060 der, wenn wir drücken Sie die Schaltfläche Senden. 332 00:19:44,060 --> 00:19:47,110 Wenn wir also auf die Schaltfläche Submit Taste, es wird eine Fehlermeldung führen. 333 00:19:47,110 --> 00:19:49,840 Aber wir werden, um Code geht, dass gerade jetzt, genau das, was wir 334 00:19:49,840 --> 00:19:54,840 wollen, wenn ein Benutzer tun legt dieses Formular. 335 00:19:54,840 --> 00:19:55,770 >> Also lassen Sie uns tun. 336 00:19:55,770 --> 00:19:57,380 Zurück zum Controller-Datei. 337 00:19:57,380 --> 00:20:00,180 Was wir tun werden, ist Umsetzung dieser neuen Funktion 338 00:20:00,180 --> 00:20:04,360 dass ermöglicht es uns, einen Beitrag erstellen. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Deklarieren neue Funktion. 341 00:20:08,990 --> 00:20:11,527 Public function erstelleBeitrag. 342 00:20:11,527 --> 00:20:14,610 Und diese Funktion wird eine sein wenig anspruchsvoller als das, was 343 00:20:14,610 --> 00:20:15,559 wir hatten vor. 344 00:20:15,559 --> 00:20:18,350 Aber Sie werden hier zu sehen, dass wir nicht werde eigentlich schreiben jede SQL. 345 00:20:18,350 --> 00:20:20,980 Das ORM, die Eloquent ORM, wird zu ermöglichen 346 00:20:20,980 --> 00:20:26,400 uns, dies zu tun in einigen Möglichkeiten einen eleganteren Weg. 347 00:20:26,400 --> 00:20:29,140 >> So werden wir einen neuen Beitrag erstellen. 348 00:20:29,140 --> 00:20:34,120 Und hier sind wir Instanziieren eines neuen Objekts 349 00:20:34,120 --> 00:20:38,080 aus dem Modell, das wir gerade erstellt, die Post-Modell. 350 00:20:38,080 --> 00:20:44,450 Und was wir tun werden eingestellt ist das title-Attribut dieses mit etwas 351 00:20:44,450 --> 00:20:47,380 dass wir vom Server. 352 00:20:47,380 --> 00:20:52,060 So ist dies ähnlich wie wir in CS50 Finance hatte vor 353 00:20:52,060 --> 00:20:57,750 wo wir tun würden, mit dem Super- Globale Beitrag auf der Suche nach Titel. 354 00:20:57,750 --> 00:21:01,600 >> So Laravel bietet einige Hygiene und so weiter mit dieser Hilfsfunktion. 355 00:21:01,600 --> 00:21:07,610 So würden wir es vorziehen, diese stattdessen dieser sehr grundlegenden rohen Form von PHP. 356 00:21:07,610 --> 00:21:17,430 Und dann, was wir tun werden gesetzt der Inhalt es Eingang bekommen Gehalt. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Wir sind tatsächlich zu wickeln dies in einer hilfreiche Funktion 359 00:21:22,720 --> 00:21:31,820 PHP bietet nl2br genannt, die dreht sich neue Linien, nls in brs, Pausen, 360 00:21:31,820 --> 00:21:35,822 so dass wir tatsächlich haben kann verschiedene Absätze innerhalb dieser Gruppe. 361 00:21:35,822 --> 00:21:38,030 Und schließlich, was wir zu tun ist, speichern Sie diese Post. 362 00:21:38,030 --> 00:21:41,686 Also haben wir die Funktion aufrufen speichern Sie an diesem Modell. 363 00:21:41,686 --> 00:21:43,800 Wir werden den Posten zu speichern. 364 00:21:43,800 --> 00:21:49,970 Und schließlich, was wir tun werden wird dem Benutzer speziell umleiten 365 00:21:49,970 --> 00:21:55,060 auf der Route, die wir zu gehen erstellen kurz, alias von viewPost. 366 00:21:55,060 --> 00:22:00,435 Und wir werden in den Argumenten übergeben ID, wobei die ID des neuen Post. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Großartig. 369 00:22:05,640 --> 00:22:09,090 So, jetzt, wenn wir tatsächlich zu gehen, und führen Sie diese. 370 00:22:09,090 --> 00:22:11,370 Wir werden einen neuen Beitrag hinzufügen. 371 00:22:11,370 --> 00:22:15,930 Nehmen wir an, dies Seminar 50. 372 00:22:15,930 --> 00:22:17,620 Und sagen, sicher. 373 00:22:17,620 --> 00:22:18,240 ADSL. 374 00:22:18,240 --> 00:22:18,740 Was Auch Immer. 375 00:22:18,740 --> 00:22:20,320 Irgendeine Art von Inhalt. 376 00:22:20,320 --> 00:22:21,180 Und abschicken. 377 00:22:21,180 --> 00:22:23,850 Und wir werden feststellen, dass, hey. Strecken, die nicht definiert ist. 378 00:22:23,850 --> 00:22:32,340 Aber wenn wir einen Blick auf phpMyAdmin und suchen Sie nach, ob unsere Funktion 379 00:22:32,340 --> 00:22:34,370 etwas getan. 380 00:22:34,370 --> 00:22:36,670 Schauen Sie sich Blog50 Beiträge. 381 00:22:36,670 --> 00:22:37,720 Wir werden bemerken, dass, hey. 382 00:22:37,720 --> 00:22:43,530 In der Tat haben wir nur noch zu einer Blog Post mit den Zeitstempeln, wie angegeben. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> So, jetzt gehen Sie zurück und tatsächlich schaffen lassen diese andere Funktion in unserer Controller, 385 00:22:51,630 --> 00:22:54,790 insbesondere die viewPost Controller. 386 00:22:54,790 --> 00:23:00,290 So public function viewPost. 387 00:23:00,290 --> 00:23:04,070 Hier also, was wir tun, sondern der mit leeren Klammern, 388 00:23:04,070 --> 00:23:08,800 wir werden in die ID übergeben wollen Die Post, die wir schaffen. 389 00:23:08,800 --> 00:23:12,800 Und von hier aus, was wir tun werden ist eigentlich Abfrage der Datenbank für sie. 390 00:23:12,800 --> 00:23:15,140 >> Also, wenn wir schreiben, es gibt eine Funktion, die aufgerufen 391 00:23:15,140 --> 00:23:18,860 Finden Sie, dass können wir es durch ID abfragen. 392 00:23:18,860 --> 00:23:22,110 Genauer gesagt, eigentlich, wir sind zu gehen verwenden eine alternative Version davon heißt 393 00:23:22,110 --> 00:23:27,880 Finde oder Fail, die uns erlaubt um aus dieser Funktion zu verlassen, 394 00:23:27,880 --> 00:23:34,700 eine Ausnahme, wenn der ID- geben wir in nicht existiert. 395 00:23:34,700 --> 00:23:37,500 Und dann werden wir etwas tun ähnlich dem, was wir haben früher 396 00:23:37,500 --> 00:23:41,100 wo wir den Inhalt von dieser Seite zu sein 397 00:23:41,100 --> 00:23:47,950 die gerenderte Version dieser neuen Ansicht das werden wir schaffen, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> Und wir werden in übergeben es-- genau wie in der CS50 machen 399 00:23:51,030 --> 00:23:56,645 function-- ein Wörterbuch von Variablen. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Die Schlüssel dieses assoziativen Arrays werden Variablen in der Vorlage. 402 00:24:04,620 --> 00:24:06,830 So werden wir nach der Post zu tun. 403 00:24:06,830 --> 00:24:12,474 So passieren indirekt die Post, dass wir aus der Datenbank abgefragt haben. . 404 00:24:12,474 --> 00:24:14,390 Nun, was wir zu gehen zu tun ist, diese Ansicht zu erstellen 405 00:24:14,390 --> 00:24:17,560 so dass wir tatsächlich sehen die Blog-Posts, die wir aufgebaut haben. 406 00:24:17,560 --> 00:24:20,280 >> So werden wir ein erstellen Datei mit dem Namen view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Also innerhalb dieser Vorlage, was wir tun werden 409 00:24:29,640 --> 00:24:39,700 zusammen eine einfache Seite stellen, dass ermöglicht es uns, den Inhalt anzuzeigen. 410 00:24:39,700 --> 00:24:44,280 Also haben wir Sektion tun, das ist, bevor Inhalt. 411 00:24:44,280 --> 00:24:46,800 Stopp. 412 00:24:46,800 --> 00:24:53,920 Und was wir innerhalb hier zu tun ist 413 00:24:53,920 --> 00:24:56,930 schreiben einige HTML, um diese Seite anzuzeigen. 414 00:24:56,930 --> 00:25:03,590 >> So werden wir es mit einer aparten wickeln neue HTML5-Element namens Artikel. 415 00:25:03,590 --> 00:25:05,790 Und hier werden wir einen Header, wo haben 416 00:25:05,790 --> 00:25:12,190 wir werden nur eine h1, wozu die Post-Titel. 417 00:25:12,190 --> 00:25:17,120 Also hier, wenn wir uns diese Doppel geschweifte Klammer-Notation, 418 00:25:17,120 --> 00:25:21,690 Dies wird im Wesentlichen zu tun PHP echo Post-Titel. 419 00:25:21,690 --> 00:25:25,630 Also ist es eine hilfreiche Kurzschrift dass Laravel bietet uns. 420 00:25:25,630 --> 00:25:31,070 So werden wir verwenden diese Schreibweise statt. 421 00:25:31,070 --> 00:25:40,220 >> Und hier werden wir auch Drucken Sie den Inhalt davon. 422 00:25:40,220 --> 00:25:43,480 Und hier werden wir post Inhalt zu tun. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 Und unten am Boden, was wir sind zu tun ist, erstellen Sie eine Fußzeile. 425 00:25:50,660 --> 00:25:57,690 Und in der Fußzeile, wir sind zu gehen ersten Anzeige, wenn diese geschrieben wurde. 426 00:25:57,690 --> 00:26:01,320 So wurde diese im Internet abrufbar, aufgestellt. 427 00:26:01,320 --> 00:26:07,996 >> Und Laravel verwendet eine wirklich schöne Datum Bibliothek namens Kohlenstoff. 428 00:26:07,996 --> 00:26:11,120 So können wir tatsächlich so etwas wie zu tun difforHumans, die Sie bereits gesehen haben. 429 00:26:11,120 --> 00:26:14,360 Als wir gebucht. Sie werden sagen: wie vor fünf Sekunden. 430 00:26:14,360 --> 00:26:16,860 Also das ist ein wirklich nettes Funktionalität Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 Und schließlich werden wir diese Fußzeile zu schließen. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> So, jetzt, wenn wir noch einmal nach Homepage werden wir 435 00:26:31,450 --> 00:26:34,490 ganz zu schweigen, weil hier noch zu sehen wir haben nicht die Homepage codiert. 436 00:26:34,490 --> 00:26:40,962 Aber wenn wir gehen, um einen Schrägstrich zu schreiben, wir gehen, um eine Ausnahme zu sehen. 437 00:26:40,962 --> 00:26:42,670 Weiß jemand, warum wir sehen eine Ausnahme? 438 00:26:42,670 --> 00:26:44,516 Was fehlt uns? 439 00:26:44,516 --> 00:26:45,290 Irgendwelche Ideen? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Also, was haben wir zu tun früher für uns tatsächlich 442 00:26:49,790 --> 00:26:52,285 zu definieren, wie wir zu werden insbesondere Controller? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> Sprecher 1: Die Strecke? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Ja. 446 00:26:56,519 --> 00:26:58,070 Wir haben also noch, um die Strecke zu definieren. 447 00:26:58,070 --> 00:26:59,794 So gehen wir wieder hier, um routes.php. 448 00:26:59,794 --> 00:27:01,710 Sie werden feststellen, dass wir bemerken, habe nicht wirklich definiert 449 00:27:01,710 --> 00:27:05,010 wie wir gehen, um zu bekommen an diesen Controller. 450 00:27:05,010 --> 00:27:06,780 So, jetzt werden wir diesen Weg zu definieren. 451 00:27:06,780 --> 00:27:09,280 Es ist ziemlich einfach, ähnlich dem, was wir haben früher. 452 00:27:09,280 --> 00:27:13,910 Aber was wir hier zu bemerken ist, dass wir gehen, um einen Platzhalter zu haben. 453 00:27:13,910 --> 00:27:18,730 >> Also, wenn wir tun route.get Schrägstrich nach ID. 454 00:27:18,730 --> 00:27:24,290 So, jetzt ID ist, was zu gehen in den Controller übergeben werden. 455 00:27:24,290 --> 00:27:27,820 Das wird die Verwendung Controller, die wir gerade 456 00:27:27,820 --> 00:27:33,560 erstellt, BlogController bei viewPost. 457 00:27:33,560 --> 00:27:36,420 Und wir sind zu gehen alias dies als viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Großartig. 460 00:27:47,490 --> 00:27:49,470 So, jetzt werden wir diesen Weg zu schaffen. 461 00:27:49,470 --> 00:27:52,100 >> So, jetzt, wenn wir hier gehen und aktualisieren Sie diese Seite, 462 00:27:52,100 --> 00:27:54,410 wir in der Tat zu tun haben unseren neuen Blog-Post. 463 00:27:54,410 --> 00:27:57,710 Also das ist, was wir zuvor erstellt haben. 464 00:27:57,710 --> 00:28:01,320 Sehr einfache Seite, sondern zeigt die Blog-Post, die wir gerade erstellt haben. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Kühle. 467 00:28:04,760 --> 00:28:08,880 Und wenn wir tatsächlich durch das ganze gehen Prozess der Erstellung eines neuen Blog-Eintrag, 468 00:28:08,880 --> 00:28:11,700 wir werden feststellen, dass alles, was Weiterleitungen richtig. 469 00:28:11,700 --> 00:28:12,950 Wenn ich sage: "Hallo. 470 00:28:12,950 --> 00:28:15,710 Ich bin Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Sagen: "Das ist mein Blog-Post." 472 00:28:18,550 --> 00:28:22,830 Und es einreichen, dies zu schaffen Diese neuen Blog-Eintrag mit ID 2, 473 00:28:22,830 --> 00:28:28,920 die Schritten von dem, was wir hatten, zuvor und zeigt es richtig. 474 00:28:28,920 --> 00:28:30,760 Ehrfürchtig. 475 00:28:30,760 --> 00:28:32,930 >> Haben Sie Fragen? 476 00:28:32,930 --> 00:28:33,430 Ja? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2: Funktioniert Laravel Griff Desinfektion und alles, was für Sie? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Ja. 479 00:28:37,245 --> 00:28:42,990 Also, wenn wir früher, als sah wir haben Eingang Doppelpunkt Doppelpunkt zu bekommen, 480 00:28:42,990 --> 00:28:47,720 dass sanitates beliebige SQL- Injektionen und so weiter 481 00:28:47,720 --> 00:28:51,660 dass wir wollen, wenn führen könnte wir sind ein böswilliger Benutzer der Website. 482 00:28:51,660 --> 00:28:54,115 So Laravel Griffe viel aus, dass hinter den Kulissen. 483 00:28:54,115 --> 00:28:57,030 Gute Frage. 484 00:28:57,030 --> 00:29:00,390 >> Werfen wir also einen Blick auf die Homepage. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Also, wenn wir zuerst zurück in die Controller für die Startseite, 487 00:29:06,790 --> 00:29:08,740 Sie werden feststellen, dass es nicht viel hier nicht. 488 00:29:08,740 --> 00:29:11,620 Sie werden bemerken, dass wir nicht Übergang in diesem Controller 489 00:29:11,620 --> 00:29:13,830 etwas besonders hilfreich. 490 00:29:13,830 --> 00:29:16,660 Es ist gerade diese Index-Datei. 491 00:29:16,660 --> 00:29:18,770 >> Lassen Sie uns also in geben dies etwas hilfreich. 492 00:29:18,770 --> 00:29:21,450 Und gesagt, wir sind werde in Beiträgen bestehen. 493 00:29:21,450 --> 00:29:28,740 Und Laravel erlaubt uns post alle tun, was 494 00:29:28,740 --> 00:29:30,625 wird es uns ermöglichen, alle Beiträge zu bekommen. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Wenn wir nun zurück zu gehen index.php, werden Sie sehen, hey. 497 00:29:35,730 --> 00:29:37,060 Nichts ist hier noch. 498 00:29:37,060 --> 00:29:41,290 Aber was wollen wir hier machen ist eigentlich durch laufen, 499 00:29:41,290 --> 00:29:46,420 führen Sie eine foreach-Schleife über die Beiträge, ermöglicht es uns, drucken Sie sich die Beiträge. 500 00:29:46,420 --> 00:29:53,180 >> So wie foreach Beiträge Post, was wir tun wollen 501 00:29:53,180 --> 00:29:57,252 wird der Inhalt ausdrucken der Blog-Post. 502 00:29:57,252 --> 00:30:00,210 Aber eine Sache, werden Sie feststellen, ist, dass wir eigentlich die meisten, dass Code geschrieben 503 00:30:00,210 --> 00:30:01,370 bereits in view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Also, was wir tatsächlich tun, ist verwenden einen schönen hilfreiche Funktion von Blade- 506 00:30:08,640 --> 00:30:11,300 und ausklammern diesen gemeinsamen Code. 507 00:30:11,300 --> 00:30:12,570 So gehen wir hier. 508 00:30:12,570 --> 00:30:16,210 >> Wir werden diese Inhalte zu nehmen genau hier, und was wir tun werden 509 00:30:16,210 --> 00:30:18,170 ist einen neuen Ordner erstellen. 510 00:30:18,170 --> 00:30:20,364 Nennen wir es einfach Partials. 511 00:30:20,364 --> 00:30:22,530 Und hier werden wir einen post.blade.php erstellen. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Also hier, ausgeklammert wir die Art und Weise die wir, um diese Einträge angezeigt werden sollen. 514 00:30:33,100 --> 00:30:38,690 Und hier, was wir tun, statt tatsächlich direkt mit, dass HTML, 515 00:30:38,690 --> 00:30:41,530 wir werden diese Anweisung verwenden genannt sind blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> Und was wir hier machen spielte in der Zeit nach der Seite. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 So, jetzt, wenn wir hier wieder, wir feststellen, dass die Funktionalität noch 520 00:31:01,050 --> 00:31:01,550 das gleiche. 521 00:31:01,550 --> 00:31:05,140 Jetzt aber dies haben wir ausgeklammert Code, HTML. 522 00:31:05,140 --> 00:31:07,070 So können wir es im Index zu verwenden. 523 00:31:07,070 --> 00:31:09,090 So, hier, das ist sehr einfach. 524 00:31:09,090 --> 00:31:17,870 Alles, was wir tun, ist enthalten blog.partials.post und Array. 525 00:31:17,870 --> 00:31:20,845 Und irgendwo auf vor, wir post. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> So, jetzt, wenn wir wieder in die Homepage, wir werden sehen, dass, hey. 528 00:31:28,182 --> 00:31:30,515 Wir haben eine Liste aller Blog-Beiträge, die wir vorher hatten. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Wir möchten vielleicht fügen Sie einige "if" Bedingungen und "else" Bedingungen 531 00:31:37,700 --> 00:31:39,979 so dass, wenn wir nicht haben alles auf dem Blog, 532 00:31:39,979 --> 00:31:41,520 Wir wollen etwas hilfreich anzuzeigen. 533 00:31:41,520 --> 00:31:42,570 Wie, hey. 534 00:31:42,570 --> 00:31:44,340 Es gibt derzeit kein Inhalt auf dem Blog. 535 00:31:44,340 --> 00:31:47,670 Und wenn euch eigentlich betrachten die Verteilung Code auf GitHub, 536 00:31:47,670 --> 00:31:50,100 Sie ein Beispiel, wie wir das tun, sehen. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Kühle. 539 00:31:54,110 --> 00:31:54,890 Haben Sie Fragen? 540 00:31:54,890 --> 00:31:55,510 Ja. 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2: Ich denke, gerade eine grundlegende Frage. 542 00:31:57,468 --> 00:31:59,480 Zurück auf die Route. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Ja. 544 00:32:00,230 --> 00:32:01,935 Wenn wir einen Blick auf Routen. 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2: Woher kommt der uses.blogcontroller bei erstellen Post, 546 00:32:06,018 --> 00:32:07,560 was bedeutet, dass direkt wir? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Ja. 548 00:32:08,310 --> 00:32:08,550 Ja. 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2: Oder was ist dass-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Also, schauen Sie, sagen, zum Beispiel die Route gleich hier. 551 00:32:12,620 --> 00:32:17,190 Der erste Teil ist die eigentliche URL, die der Benutzer zu gehen. 552 00:32:17,190 --> 00:32:19,930 Und das Array hier, assoziatives Array, legt fest, 553 00:32:19,930 --> 00:32:24,520 Wie wollen wir das haben Anwendung Handlung als Reaktion auf sie. 554 00:32:24,520 --> 00:32:29,090 So verwendet der Controller, Die Funktion, die wir 555 00:32:29,090 --> 00:32:31,610 will rufen, wenn ein Anwender diese URL. 556 00:32:31,610 --> 00:32:35,190 So viewPost hier ein Funktion, die wir im Inneren definiert 557 00:32:35,190 --> 00:32:36,100 von BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2: Ich verstehe. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: -SO dass wir kann tatsächlich machen den Blick, 560 00:32:39,368 --> 00:32:42,590 führen einige Berechnungen, interagieren mit der SQL-Datenbank. 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: Und dann die andere Teil ", wie" ist ein Alias, die wir verwenden. 563 00:32:46,960 --> 00:32:50,714 Wenn wir bemerken, wenn wir die Form erstellt, 564 00:32:50,714 --> 00:32:52,380 Sie werden feststellen, dass die URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 So ist es in der aktuellen ersetzt URL, so dass wir nicht hart 567 00:32:58,330 --> 00:33:02,940 Codierung diese in so können wir es ändern einmal, sagen wir, wenn wir benennen wollte. 568 00:33:02,940 --> 00:33:06,055 Statt nach Schrägstrich neue, wie, p tun wir 569 00:33:06,055 --> 00:33:09,490 Slash neue nur zu reinigen unsere URLs ein bisschen. 570 00:33:09,490 --> 00:33:14,740 Wir würden es in einem Punkt nicht ändern als das auf den verschiedenen Dateien. 571 00:33:14,740 --> 00:33:15,451 >> Kühle. 572 00:33:15,451 --> 00:33:15,950 Das ist gut. 573 00:33:15,950 --> 00:33:20,070 So, jetzt haben wir ein sehr Grund Blog-Plattform. 574 00:33:20,070 --> 00:33:24,260 Wir wollen wahrscheinlich in eine Schaltfläche hinzufügen, damit dass wir tatsächlich neue Beiträge. 575 00:33:24,260 --> 00:33:27,850 Also, wenn wir einen Blick am Layout Master, 576 00:33:27,850 --> 00:33:31,280 wir einen Abschnitt namens Header-Rechts haben dass wir gerade an der Spitze definiert. 577 00:33:31,280 --> 00:33:34,820 So können wir Knöpfe hinzufügen die Oberseite der Kopfzeile. 578 00:33:34,820 --> 00:33:43,950 >> Also, wenn wir gehen, um index.blade.php, tatsächlich zu tun ist, zu definieren, was in der hier geht. 579 00:33:43,950 --> 00:33:46,970 Also das mit der rechten Kopfbereich, was wir tun werden 580 00:33:46,970 --> 00:33:55,240 befindet sich in einer Taste, um die zu gehen hinzufügen URL von der Route einen neuen Beitrag definiert. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Nur um es zu reinigen und machen es hübsch und alle Bootstrap, 583 00:34:01,660 --> 00:34:04,630 werden wir machen dies ein Standard-Schaltfläche. 584 00:34:04,630 --> 00:34:07,794 Lassen Sie uns nur machen es großen Spaß. 585 00:34:07,794 --> 00:34:09,969 >> Und in ihm konnten wir einen Text setzen. 586 00:34:09,969 --> 00:34:14,030 Welche Bootstrap Aber bietet ist glyphicons. 587 00:34:14,030 --> 00:34:17,840 So können wir tatsächlich hinzufügen, dass schöne Bleistift, die wir bereits gesehen haben. 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-Bleistift. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Also das wird uns erlauben, setzen in einem Symbol anstelle von Text. 593 00:34:35,340 --> 00:34:38,960 Nun, wenn wir aufhören, diese wird diesen Abschnitt zu definieren. 594 00:34:38,960 --> 00:34:39,460 Und, hey. 595 00:34:39,460 --> 00:34:45,000 Wir haben ein schönes Taste, die uns verbindet direkt an der einen Blog-Post Seite hinzufügen. 596 00:34:45,000 --> 00:34:46,659 >> So haben wir eine ziemlich einfache Blog. 597 00:34:46,659 --> 00:34:49,710 Wir können Sachen hinzufügen. 598 00:34:49,710 --> 00:34:53,650 Aber was wir in der Regel erwarten von Blogs wird zu kommentieren. 599 00:34:53,650 --> 00:34:57,340 So ist es wirklich wichtig, dass wir haben, sagen, wenn jemand anderes besucht eine Website 600 00:34:57,340 --> 00:35:00,620 und wirklich mag die Post, dass sie in der Diskussion beteiligen können 601 00:35:00,620 --> 00:35:03,100 mit anderen Menschen, die Seite zu besuchen. 602 00:35:03,100 --> 00:35:07,050 So werden wir zu gehen, und erstellen Sie ein neue Datenbanktabelle und ein neues Modell 603 00:35:07,050 --> 00:35:12,220 damit verbinden wir können kommentiert mit Beiträgen. 604 00:35:12,220 --> 00:35:17,370 >> Der erste Schritt, genau wie zuvor, ist, dass wir brauchen, um eine Migration ausführen. 605 00:35:17,370 --> 00:35:21,982 So wie vor, wir machen php Handwerker migrieren: machen. 606 00:35:21,982 --> 00:35:24,440 Und wir werden um eine zu erstellen genannt create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Dies wird eine Datei erstellen das hat unsere neue Migration. 609 00:35:36,080 --> 00:35:40,170 Und wir sind zu gehen, wie vor, definieren Sie eine neue Tabelle. 610 00:35:40,170 --> 00:35:42,773 So Schema :: erstellen Tabelle namens Kommentare. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Diese Funktion hier. 613 00:35:48,430 --> 00:35:51,620 Und innerhalb dieser Tabelle, was wir werden tun müssen, ist zunächst, 614 00:35:51,620 --> 00:35:54,260 wie zuvor, eine ID zuweisen. 615 00:35:54,260 --> 00:35:56,552 Erhöht ID. 616 00:35:56,552 --> 00:36:05,440 >> Wir werden, damit die Benutzer zu verknüpfen ihren Namen mit einem bestimmten Kommentar. 617 00:36:05,440 --> 00:36:10,080 Wir werden einige Inhalte haben, dass geht einher mit diesem, Textinhalt. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 Und hier, was wir zu gehen tun, ist etwas anderes. 620 00:36:15,910 --> 00:36:23,620 Wir werden eine ganze Zahl erstellen so nennt man die post_id 621 00:36:23,620 --> 00:36:32,100 wird, um anzuzeigen, welche Post ein bestimmter Kommentar geht mit. 622 00:36:32,100 --> 00:36:35,410 >> Darüber hinaus sind wir tatsächlich zu setzen ein Fremdschlüssel zu diesem Thema. 623 00:36:35,410 --> 00:36:37,750 So MySQL durchzusetzen, dass. 624 00:36:37,750 --> 00:36:39,840 Wir versuchen nicht, zuweisen Kommentar Nummer 625 00:36:39,840 --> 00:36:44,440 5, um zu Posten 5000, wenn wir nicht hatte 5000 Beiträge auf sie. 626 00:36:44,440 --> 00:36:50,240 Also, was wir hier tun, wir tun ausländischen post_id 627 00:36:50,240 --> 00:37:02,046 wird sich mit zugeordnet sein das ID-Feld aus der Tabelle Einträge. 628 00:37:02,046 --> 00:37:05,900 Und wir werden tatsächlich etwas zu tun sonst hilfsbereit, onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Also, wenn wir irgendein löschen Post aus der Datenbank, 630 00:37:11,180 --> 00:37:15,507 dass wir an den Kaskaden wollen löscht für Kommentare auch. 631 00:37:15,507 --> 00:37:18,090 Denn es ist nicht sehr hilfreich für uns Kommentare zu Beiträge zu müssen 632 00:37:18,090 --> 00:37:19,900 dass es nicht. 633 00:37:19,900 --> 00:37:23,764 Und schließlich, wie zuvor, sind wir werde Zeitstempel auf diese einzustellen. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 Und wie vor, wir sind zu gehen haben die umgekehrte Migration 636 00:37:33,510 --> 00:37:37,920 Fallenlassen der Kommentare Tisch. 637 00:37:37,920 --> 00:37:40,070 >> So, jetzt, wenn wir zurückgehen hier werden wir 638 00:37:40,070 --> 00:37:43,110 , diese Migration, Handwerker wandern laufen. 639 00:37:43,110 --> 00:37:46,400 Und jetzt ist es diese angewendet Migration, die wir gerade erstellt haben. 640 00:37:46,400 --> 00:37:50,080 Wenn wir also einen Blick auf phpMyAdmin, wir tun, in der Tat, jetzt 641 00:37:50,080 --> 00:37:53,210 eine Tabelle, die die Kommentare hat Struktur, die wir gerade festgelegt. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 So wie früher, wir sind gehen, ein neues Modell zu erstellen 644 00:37:59,610 --> 00:38:04,450 zu abstrahieren der SQL-Tabelle dass wir gerade erstellt haben. 645 00:38:04,450 --> 00:38:05,450 >> Lassen Sie uns also eine neue Datei hinzufügen. 646 00:38:05,450 --> 00:38:06,908 Wir werden es nennen comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 Und das ist eigentlich los, um fair zu sein einfach mit einer leichten Veränderung 649 00:38:15,490 --> 00:38:17,520 von dem, was wir vorher hatten. 650 00:38:17,520 --> 00:38:22,790 So Klasse Kommentar erstreckt Eloquent. 651 00:38:22,790 --> 00:38:25,930 Und was wir hier zu tun ist, zu definieren 652 00:38:25,930 --> 00:38:31,360 eine Funktion, die ist Beziehung zu anderen Modellen. 653 00:38:31,360 --> 00:38:39,250 So werden wir einen Beitrag Funktion hier, die diesen Zusammenhang zurück. 654 00:38:39,250 --> 00:38:43,330 So dass wir die Angabe, dass Diese gehört zu veröffentlichen, 655 00:38:43,330 --> 00:38:49,200 sagen, dass es einen Beitrag dass dieser Kommentar gehört. 656 00:38:49,200 --> 00:38:53,917 >> Das hat eigentlich sein Hauptstadt P für das Modell. 657 00:38:53,917 --> 00:38:56,500 Und jetzt gleich auf der anderen Flip Seite haben wir zu sagen, dass, hey. 658 00:38:56,500 --> 00:38:58,160 Beiträge sind Kommentare. 659 00:38:58,160 --> 00:39:03,030 Also, was wir tun werden ist definieren public function Kommentare. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 Und hier wird zurückgegeben Dies hat viele Kommentare. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 So, jetzt magisch, wenn wir einen Beitrag, können wir die Attribut Kommentare erhalten 664 00:39:22,010 --> 00:39:25,615 und es wird mit der bevöl Informationen aus der Datenbank. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Lassen Sie uns also tatsächlich durchlaufen und fügen Sie eine neue Funktion, um unsere Ansicht Datei 667 00:39:38,220 --> 00:39:43,600 so dass wir beide können Anzeige und erstellen Sie Kommentare. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 So werden wir definieren einen neuen Abschnitt. 670 00:39:56,865 --> 00:39:59,890 Lassen Sie uns zu trennen es nur mit einer horizontalen Linie. 671 00:39:59,890 --> 00:40:04,065 Abschnitt id = "Kommentare". 672 00:40:04,065 --> 00:40:06,990 Was wir tun werden hier ist, wie zuvor, 673 00:40:06,990 --> 00:40:09,880 durchlaufen alle Kommentare. 674 00:40:09,880 --> 00:40:12,960 Also wirklich, wie wir dies tun, ist, wie gesagt, ziemlich magisch. 675 00:40:12,960 --> 00:40:14,440 >> Wir tun Kommentare zu schreiben. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 Und dann können wir dies für jeden zu tun Schleife über jedes der Kommentare. 678 00:40:22,710 --> 00:40:25,740 Und was wir zu gehen zu tun ist, div class Kommentar, 679 00:40:25,740 --> 00:40:29,240 und wir werden tatsächlich Drucken Sie diesen Kommentar. 680 00:40:29,240 --> 00:40:34,150 So zeigen, dass hey, Kommentar name-- die Person 681 00:40:34,150 --> 00:40:38,080 die Beiträge geschrieben dieses comment-- sagt dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Wir werden dies in einem Block setzen Angebot, nur um es schön aussehen. 683 00:40:41,240 --> 00:40:46,470 Und dann kommentieren Inhaltsblock Zitat. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 Und foreach. 686 00:40:50,892 --> 00:40:53,100 So, jetzt ist dies eine Schleife gehen durch alle Kommentare 687 00:40:53,100 --> 00:40:56,500 daß zugeordnet wobei jeder der Beiträge 688 00:40:56,500 --> 00:41:00,960 und zeigt jede dieser Stellungnahmen. 689 00:41:00,960 --> 00:41:05,120 Ich werde einen weiteren Abschnitt unten hinzufügen hier, das ermöglicht es uns, einen Kommentar hinzuzufügen. 690 00:41:05,120 --> 00:41:07,400 So h3 Klasse. 691 00:41:07,400 --> 00:41:09,580 Legen Sie hier einen Titel an. 692 00:41:09,580 --> 00:41:10,934 Einen Kommentar hinzufügen. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 Und wir werden eine neue Form zu definieren. 695 00:41:15,700 --> 00:41:18,730 >> So wie früher, wir sind werde form action tun. 696 00:41:18,730 --> 00:41:22,740 Und hier ist die neue Aktion sind wir werde einen neuen Controller zu definieren, dass 697 00:41:22,740 --> 00:41:26,770 ermöglicht es uns, zu reagieren, um zu Posten Anforderungen für die Erstellung von Anmerkungen. 698 00:41:26,770 --> 00:41:33,365 So URL :: Route createComment. 699 00:41:33,365 --> 00:41:37,730 Ich werde in den Parameter hinter sich lassen. 700 00:41:37,730 --> 00:41:40,380 Die ID des Beitrags, dass schaffen wir kommentieren. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 Und dann wird das Verfahren dieser Form wird Post sein. 703 00:41:50,280 --> 00:41:57,240 >> Jetzt werden wir hinzufügen, in zwei Felder, Form Gruppe. 704 00:41:57,240 --> 00:42:04,670 Das wird ein Eingang mit dem sein Namen "name" und class = "Form-Kontrolle" 705 00:42:04,670 --> 00:42:14,250 type = "text", und mit der Platzhalter = "Ihr Name". 706 00:42:14,250 --> 00:42:19,380 Wir werden auch zu definieren, ein weiteres Formularfeld, die 707 00:42:19,380 --> 00:42:22,970 wird ein Text sein Bereich als wir vorher hatten. 708 00:42:22,970 --> 00:42:25,480 Genau wie vor, nennen es Gehalt. 709 00:42:25,480 --> 00:42:31,160 Class = "Form-Kontrolle." 710 00:42:31,160 --> 00:42:41,660 Platzhalter = "Schreiben Sie hier." 711 00:42:41,660 --> 00:42:44,100 >> Und nur damit, dass wir tatsächlich eintragen, 712 00:42:44,100 --> 00:42:55,740 einreichen Art und class = "btn-Primär btn." 713 00:42:55,740 --> 00:42:57,005 Schließen Sie das Formular. 714 00:42:57,005 --> 00:42:59,010 Schließen Sie diese Aktion. 715 00:42:59,010 --> 00:43:06,580 So, jetzt, wenn wir diese Seite, wo aktualisieren wir haben, sagen wir, eine bestimmte Stelle. 716 00:43:06,580 --> 00:43:10,310 Wir müssen den Server neu starten. 717 00:43:10,310 --> 00:43:12,340 PHP-Handwerker zu dienen. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Starten Sie diese. 720 00:43:18,334 --> 00:43:19,500 Wir haben, um die Strecke zu definieren. 721 00:43:19,500 --> 00:43:25,090 Aber jetzt lasst uns einfach nehmen diese aus, so dass wir tatsächlich zeigen Ihnen 722 00:43:25,090 --> 00:43:28,750 was die Seite aussieht, und dann wir tatsächlich noch zu einer Route. 723 00:43:28,750 --> 00:43:29,250 Also, hey. 724 00:43:29,250 --> 00:43:37,080 Wir haben diese neue Form hier unten damit wir Kommentare erstellen. 725 00:43:37,080 --> 00:43:39,950 Lassen Sie uns also tatsächlich definieren ein Funktion in der Steuerung 726 00:43:39,950 --> 00:43:43,020 damit wir Kommentare hinzufügen. 727 00:43:43,020 --> 00:43:43,650 Gehen wir zurück. 728 00:43:43,650 --> 00:43:48,420 Und innerhalb blogcontroller.php, was wir tun werden 729 00:43:48,420 --> 00:43:51,620 ist eine neue Funktion zu erstellen genannt erstellen Kommentar. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Public function createComment. 732 00:43:57,040 --> 00:44:00,130 Das wird ein einzelnes zu haben Parameter, die ID der Pfosten 733 00:44:00,130 --> 00:44:02,280 dass wir zu kommentieren. 734 00:44:02,280 --> 00:44:04,790 Und wie vor sind wir werde zuerst erhalten den Pfosten. 735 00:44:04,790 --> 00:44:10,790 So veröffentlichen, findOrfail id. 736 00:44:10,790 --> 00:44:15,020 Danach werden wir um einen neuen Kommentar zu erstellen. 737 00:44:15,020 --> 00:44:18,880 So kommentieren = new Kommentar. 738 00:44:18,880 --> 00:44:26,820 Kommentar Name = Eingang :: get Namen. 739 00:44:26,820 --> 00:44:39,420 Kommentar content = gleich neue Linie in den Pausen der Eingangs :: get Inhalt. 740 00:44:39,420 --> 00:44:43,460 >> Und schließlich werden wir zu haben, assoziieren diesen Kommentar mit der Post. 741 00:44:43,460 --> 00:44:47,230 So werden wir verwenden Diese Funktion, Kommentare, 742 00:44:47,230 --> 00:44:50,260 dass können wir sparen diese Beziehung. 743 00:44:50,260 --> 00:44:54,780 So, jetzt wird dieser Kommentar haben automatisch die Post-ID. 744 00:44:54,780 --> 00:44:57,640 Wir könnten auch legen Sie es manuell, ist aber 745 00:44:57,640 --> 00:45:02,490 mehr einfach zu bedienen wie bisher gelesen wie die Funktion geht. 746 00:45:02,490 --> 00:45:05,860 Und nachdem wir durchführen dies, was wir tun wollen 747 00:45:05,860 --> 00:45:10,840 ist leiten den Benutzer auf die Route viewPost angegeben 748 00:45:10,840 --> 00:45:16,010 mit dem Array mit den Parameter der Post-ID. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> Und jetzt, dass dies tatsächlich Funktionen, müssen wir diesen Weg zu definieren. 751 00:45:24,660 --> 00:45:27,126 Routen :: Post. 752 00:45:27,126 --> 00:45:32,800 Und jetzt werden wir diese nennen Beitrag senken ID Strich Kommentar. 753 00:45:32,800 --> 00:45:36,725 Array verwendet die neue Funktion dass wir gerade erstellt haben. 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 Als createComment CreateComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Großartig. 759 00:45:50,120 --> 00:45:56,150 >> So, jetzt hoffentlich, wenn wir diese Seite aktualisieren und fügen Sie in einem Kommentar, sagen wir, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Ich hoffe das funktioniert." 762 00:46:03,920 --> 00:46:05,216 Senden. 763 00:46:05,216 --> 00:46:09,050 Wir haben in der Tat, haben eine Kommentar zu diesem Blog-Post. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Kühle. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 So, jetzt haben wir ein ziemlich Funktions Blog-Post. 768 00:46:21,430 --> 00:46:23,180 Wir sind gerade dabei, fügen Sie ein paar Tweaks so 769 00:46:23,180 --> 00:46:29,090 dass wir etwas mehr nützlich Informationen zu diesen Beiträgen. 770 00:46:29,090 --> 00:46:32,780 >> Also, wenn wir wieder in die Titelseite, haben wir keinen Sinn 771 00:46:32,780 --> 00:46:38,790 wie viele Kommentare sind auf jedem dieser Beiträge. 772 00:46:38,790 --> 00:46:41,340 Also, was wir eigentlich vor sich geht zu tun ist, in unserem Modell, 773 00:46:41,340 --> 00:46:51,250 definiert eine Hilfsfunktion, die erlaubt uns, die Anzahl der Kommentare angeben 774 00:46:51,250 --> 00:46:53,020 dass mit einer bestimmten Post zu gehen. 775 00:46:53,020 --> 00:46:56,050 So werden wir erstellen eine Hilfsfunktion. 776 00:46:56,050 --> 00:46:58,020 >> Öffentliche Funktion. 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 So ein String, der Nummer gibt Kommentare, die zusammen mit ihm zu gehen. 780 00:47:07,180 --> 00:47:12,850 Und das, was wir tun werden, ist sagen, dass num = diese Kommentare zu zählen. 781 00:47:12,850 --> 00:47:15,150 So werden wir zu zählen die Anzahl der Kommentare. 782 00:47:15,150 --> 00:47:22,900 Und wenn diese Zahl gleich 1 ist, sind wir gerade dabei, ein Kommentar zurück. 783 00:47:22,900 --> 00:47:28,890 Und dann nichts anderes, zurückgeben wollen wir die Verkettung von num ab und Anmerkungen, 784 00:47:28,890 --> 00:47:31,890 so erhalten wir die Pluralisierung richtig. 785 00:47:31,890 --> 00:47:33,380 So stellen Sie diese ein einfaches Anführungszeichen. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Ein Kommentar. 788 00:47:37,640 --> 00:47:41,140 >> Und jetzt können wir mit dieser Funktion direkt in unserer Ansicht. 789 00:47:41,140 --> 00:47:44,510 Also, wenn wir wieder in die Teil Beiträge, die wir erstellt haben, 790 00:47:44,510 --> 00:47:49,370 jetzt wollen wir eigentlich zeigt die Anzahl der Kommentare. 791 00:47:49,370 --> 00:47:52,660 Also, was wir tun können, ist Post, können Sie hier 792 00:47:52,660 --> 00:47:57,230 dass wir gerade erstellt zeigt die Anzahl der Kommentare. 793 00:47:57,230 --> 00:48:00,440 Wenn wir jetzt zu aktualisieren, es sieht in der Tat, Anzeige 794 00:48:00,440 --> 00:48:02,240 Die Anzahl Kommentare dass gehen zusammen mit ihm. 795 00:48:02,240 --> 00:48:05,320 >> Wenn wir Lust, wenn Sie sein wollte tatsächlich auf die Verteilung Code aussehen, 796 00:48:05,320 --> 00:48:07,800 wir tatsächlich verlinken Diese auf die Ausführungen. 797 00:48:07,800 --> 00:48:17,040 Wenn Sie sich erinnern, innerhalb der definierten wir anzuzeigen, dass dies Abschnitt ID Kommentare. 798 00:48:17,040 --> 00:48:22,460 Also, wenn wir eigentlich wollten verlinken direkt an den Kommentaren, was 799 00:48:22,460 --> 00:48:36,000 würden wir hier tun, ist a href URL der Route viewPost. 800 00:48:36,000 --> 00:48:40,550 Übergeben Sie in dem Feld ID der Post-ID. 801 00:48:40,550 --> 00:48:46,140 Und dann, um zu gehen, wollen wir insbesondere das Kommentarfeld. 802 00:48:46,140 --> 00:48:49,900 >> Hier wollen wir schließen Sie die Ein-Tag. 803 00:48:49,900 --> 00:48:52,950 So, jetzt, wenn wir diese zu aktualisieren Seite klicken Sie auf die wir zu diesem Thema. 804 00:48:52,950 --> 00:48:54,700 Wir werden direkt zu gehen das Kommentarfeld. 805 00:48:54,700 --> 00:48:57,580 Wenn wir einen längeren Beitrag können Sie tatsächlich sehen diese Sprungkraft nach unten. 806 00:48:57,580 --> 00:49:02,668 Aber Sie werden feststellen, dass es nicht an der Spitze der Seite. 807 00:49:02,668 --> 00:49:04,090 Kühle. 808 00:49:04,090 --> 00:49:04,600 Großartig. 809 00:49:04,600 --> 00:49:08,582 Also das ist eine ziemlich einfache Beispiel für etwas einfach 810 00:49:08,582 --> 00:49:09,790 dass Sie mit Laravel tun können. 811 00:49:09,790 --> 00:49:13,230 >> Aber man hier feststellen können, dass wir haben eine Menge Dinge getan 812 00:49:13,230 --> 00:49:16,200 mit einer ziemlich kleinen Menge von Codes. 813 00:49:16,200 --> 00:49:19,420 Laravel ermöglicht es uns, das zu tun SQL-Abfragen hinter den Kulissen. 814 00:49:19,420 --> 00:49:21,960 Es spielt die Hygiene für uns hinter die Kulissen. 815 00:49:21,960 --> 00:49:25,940 Ermöglicht es uns, diese Beziehungen zu tun sehr leicht, ohne dass wir 816 00:49:25,940 --> 00:49:33,350 um beliebige SQL-Anweisungen zu tun beitreten Kommentare zu verbinden mit dem, was den Pfosten. 817 00:49:33,350 --> 00:49:36,480 Ermöglicht es uns, dies zu tun Vererbung von Vorlagen 818 00:49:36,480 --> 00:49:43,780 damit wir diese Verschachtelung definieren Dateien, so dass wir uns nicht wiederholen, 819 00:49:43,780 --> 00:49:47,020 wie als wir, dass Anzeige der Blog-Beiträge 820 00:49:47,020 --> 00:49:50,770 dass wir nicht haben, kopieren, in den Code. 821 00:49:50,770 --> 00:49:55,450 >> Und von hier aus können Sie bauen immer komplizierter Anwendungen. 822 00:49:55,450 --> 00:49:58,370 Sie können sich vorstellen, wenn wir wollte umzusetzen einloggen, 823 00:49:58,370 --> 00:50:05,532 könnten wir sagen, bringen in einem Dritten Rahmen, der uns erlaubt, das zu tun. 824 00:50:05,532 --> 00:50:07,490 Es gibt eine Menge von ihnen die wirklich sind, wirklich 825 00:50:07,490 --> 00:50:09,970 groß, die wie zu tun, Passwort-Wiederherstellung. 826 00:50:09,970 --> 00:50:14,450 Und es wird Ihnen eine Nachricht senden Passwort zurücksetzen E-Mail. 827 00:50:14,450 --> 00:50:18,260 Wir können die Erlaubnis zu implementieren so dass ich einen Beitrag zu erstellen, 828 00:50:18,260 --> 00:50:20,350 aber jemand anderes nicht bearbeiten. 829 00:50:20,350 --> 00:50:24,610 Wir implementieren Funktionalität, um Beiträge zu löschen. 830 00:50:24,610 --> 00:50:28,160 >> Aber sehen Sie hier, was wir haben ziemlich viel alle rudimentären Komponenten 831 00:50:28,160 --> 00:50:31,640 einige wirklich bauen, wirklich, dynamische und spannende Web-Anwendungen. 832 00:50:31,640 --> 00:50:34,035 Also mit diesem, ich denke, wir sind gut. 833 00:50:34,035 --> 00:50:35,720 Habt ihr Fragen? 834 00:50:35,720 --> 00:50:36,220 Ja? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3: Wie wollen Sie bekommen statische Inhalt? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: Statische Inhalte. 837 00:50:39,256 --> 00:50:45,520 So sah vor, dass Sie, als wir Dieses hier, dieses Layout Inhalte, 838 00:50:45,520 --> 00:50:49,625 Ansicht Marke, dies hatten wir ohne dieses Array anschließend. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, dies hatten wir als nur eine statische Datei. 841 00:50:59,152 --> 00:51:00,860 Also, wenn wir nicht weitergeben alles zusammen, um es zu, 842 00:51:00,860 --> 00:51:03,340 es werde einfach machen den HTML-Code direkt. 843 00:51:03,340 --> 00:51:09,240 Aber wenn wir in diesem assoziativen geben Anordnung von Pfosten, die dynamisch ist 844 00:51:09,240 --> 00:51:12,950 aus der Datenbank herausgezogen, man können die Seite dynamisch zu machen. 845 00:51:12,950 --> 00:51:13,450 Kühle. 846 00:51:13,450 --> 00:51:14,830 Noch Fragen? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3: Wie würden Sie vergleichen Laravel um vielleicht einige andere Optionen? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Sicher. 850 00:51:20,525 --> 00:51:21,025 Ja. 851 00:51:21,025 --> 00:51:23,430 So Laravel ist-- das ist, ein großer question-- 852 00:51:23,430 --> 00:51:26,190 eine von vielen Möglichkeiten für Web-Frameworks. 853 00:51:26,190 --> 00:51:31,160 So Ruby on Rails ist eine, die beliebt ist. 854 00:51:31,160 --> 00:51:34,590 Ich glaube, dass Twitter früher mit Ruby on Rails umgesetzt. 855 00:51:34,590 --> 00:51:37,600 Ich denke, sie seit schaltet haben. 856 00:51:37,600 --> 00:51:40,780 Es gibt eine andere sogenannte FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> So Ruby on Rails verwendet die Programmiersprache Ruby und implementiert eine Menge von der MVC Zeug 858 00:51:46,120 --> 00:51:48,200 dass wir hier sehen. 859 00:51:48,200 --> 00:51:52,320 FuelPHP ist ein weiteres PHP-Framework. 860 00:51:52,320 --> 00:51:54,490 Django ist einer meiner Favoriten. 861 00:51:54,490 --> 00:51:57,010 Es ist ein Web-Framework für Python. 862 00:51:57,010 --> 00:52:01,270 So können Sie Ihre Web-Anwendung in Python zu schreiben. 863 00:52:01,270 --> 00:52:03,760 So gibt es eine Tonne dieser Optionen. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, glaube ich, durch und groß ist mein Lieblings-Recht 865 00:52:06,170 --> 00:52:08,232 jetzt PHP nur weil der Komponenten 866 00:52:08,232 --> 00:52:09,440 dass wir sprachen über früher. 867 00:52:09,440 --> 00:52:11,910 Es ist Komponist aktiviert. 868 00:52:11,910 --> 00:52:15,750 Es umfasst ein wirklich, wirklich expressive ORM-System. 869 00:52:15,750 --> 00:52:18,800 Auch hat eine wirklich genial Templating Sprache, die einige von den anderen 870 00:52:18,800 --> 00:52:20,630 einfach nicht bieten. 871 00:52:20,630 --> 00:52:21,400 Und Migrationen. 872 00:52:21,400 --> 00:52:23,432 Migrationen sind genial auch. 873 00:52:23,432 --> 00:52:24,860 Cool? 874 00:52:24,860 --> 00:52:25,390 Ehrfürchtig. 875 00:52:25,390 --> 00:52:27,560 Nun, vielen Dank für die beobachten dieses Seminar, 876 00:52:27,560 --> 00:52:30,650 und viel Glück auf der endgültigen Projekte. 877 00:52:30,650 --> 00:52:31,616