1 00:00:00,000 --> 00:00:02,538 >> [GIOCO MUSIC] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC OUYANG: Ehi, tutti. 4 00:00:12,390 --> 00:00:13,580 Benvenuto. 5 00:00:13,580 --> 00:00:16,860 Questa è la costruzione dinamica Applicazioni Web con Laravel. 6 00:00:16,860 --> 00:00:18,290 Il mio nome è Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Sono al secondo anno a studiare Studi sociali con una secondaria in informatica, 8 00:00:23,860 --> 00:00:27,290 e vivo in Adams Casa qui a Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Così Laravel, nella sua forma più centro, è un framework web app MVC. 10 00:00:33,340 --> 00:00:38,265 Così come quello che voi ragazzi avete state facendo con CS50 Finanza, 11 00:00:38,265 --> 00:00:42,480 Laravel è un framework che permette di costruire applicazioni web dinamiche. 12 00:00:42,480 --> 00:00:47,710 Così si può pensare che in un certo senso come un'estensione del tipo di roba 13 00:00:47,710 --> 00:00:50,470 che hai fatto in CS50 Finanza, ma un sistema che è 14 00:00:50,470 --> 00:00:55,890 molto più robusto, molto più elegante in un certo senso, 15 00:00:55,890 --> 00:00:57,870 e fornisce molti funzionalità per voi 16 00:00:57,870 --> 00:01:03,060 per costruire abbastanza complesso applicazioni web. 17 00:01:03,060 --> 00:01:05,010 Quindi andiamo attraverso alcuni delle caratteristiche principali, 18 00:01:05,010 --> 00:01:09,550 e poi ci immergeremo in un esempio di costruzione di un blog 19 00:01:09,550 --> 00:01:12,500 applicazione con Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Così una delle prime cose che lo differenzia dal tipo MVC di lavoro 21 00:01:16,700 --> 00:01:22,100 che si sia fatto con CS50 è include un motore ORM. 22 00:01:22,100 --> 00:01:27,410 Così ORM sta per oggetto mapping relazionale. 23 00:01:27,410 --> 00:01:31,080 Quindi questo permette di costruire un livello di astrazione 24 00:01:31,080 --> 00:01:35,230 tra il database e controller. 25 00:01:35,230 --> 00:01:39,150 Quindi, a differenza di CS50 Finance dove si fanno direttamente le query, 26 00:01:39,150 --> 00:01:44,790 lo strato ORM consente di astratto che via e creare 27 00:01:44,790 --> 00:01:48,085 modelli che sono più potenti è possibile direttamente con query SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Un'altra cosa che è veramente utile è modelli ereditabili. 30 00:01:53,510 --> 00:01:58,990 Così si noterà in CS50 Finanza, si finisce per riscrivere un sacco di cose, 31 00:01:58,990 --> 00:02:03,150 dove i luoghi si potrebbe potenzialmente riutilizzare le cose, non sei in grado di. 32 00:02:03,150 --> 00:02:08,539 Così qui in Laravel, è possibile utilizzare ciò che è noto come motore di template lama 33 00:02:08,539 --> 00:02:10,530 per creare una struttura master. 34 00:02:10,530 --> 00:02:15,840 E da lì, è possibile ereditare in modo che i sub-modelli può effettivamente 35 00:02:15,840 --> 00:02:21,210 includere elementi all'interno che grande modello base. 36 00:02:21,210 --> 00:02:21,810 >> Migrazione. 37 00:02:21,810 --> 00:02:29,010 Quindi questa è una funzionalità abbastanza standard su la maggior parte dei moderni framework applicativi web. 38 00:02:29,010 --> 00:02:32,710 Quindi questo permette di rappresentare modifiche dello schema di database nel codice. 39 00:02:32,710 --> 00:02:39,200 Così, senza andare a dire, phpMyAdmin, si può effettivamente creare queste migrazioni 40 00:02:39,200 --> 00:02:44,660 dove voi rappresentate il database schema cambia in codice direttamente. 41 00:02:44,660 --> 00:02:48,070 E questo consente a-- soprattutto se si dispone di più persone che lavorano 42 00:02:48,070 --> 00:02:52,650 sulla stessa application-- web monitorare questi cambiamenti, 43 00:02:52,650 --> 00:02:55,380 dire in GitHub, o qualche altro repository. 44 00:02:55,380 --> 00:03:00,880 >> Quindi questo è davvero utile e mitiga la necessità 45 00:03:00,880 --> 00:03:04,580 , per esempio, passare in giro un sacco di SQL discariche. 46 00:03:04,580 --> 00:03:07,140 E, infine, Composer è qualcosa di veramente, veramente utile 47 00:03:07,140 --> 00:03:09,840 che consente di utilizzare altri Codice delle persone di fare cose impressionanti. 48 00:03:09,840 --> 00:03:14,020 Così Laravel di strutturato come diversi pacchetti compositore. 49 00:03:14,020 --> 00:03:17,870 Quindi, dice, se si voleva portare in un pacchetto di autenticazione 50 00:03:17,870 --> 00:03:23,440 o se si voleva portare in qualche sorta di sceneggiatura generatore o un amministratore 51 00:03:23,440 --> 00:03:26,910 interfaccia, è possibile collegare e riprodurre i componenti con Composer. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Quindi cerchiamo di iniziare. 54 00:03:31,570 --> 00:03:35,185 Tutte le domande da voi ragazzi prima di iniziare? 55 00:03:35,185 --> 00:03:36,500 Nessuna domanda? 56 00:03:36,500 --> 00:03:37,490 Freddo. 57 00:03:37,490 --> 00:03:39,990 Quindi il primo passo è installazione Composer. 58 00:03:39,990 --> 00:03:43,590 Così Composer consente di gestire queste dipendenze, 59 00:03:43,590 --> 00:03:47,770 se è il quadro Laravel o qualche altra estensione di terze parti. 60 00:03:47,770 --> 00:03:50,400 Il primo comando consente di scaricare Compositore, 61 00:03:50,400 --> 00:03:55,890 e il secondo comando consente di spostarlo nella cartella bin locale 62 00:03:55,890 --> 00:04:01,340 in modo da poter eseguire Compositore direttamente attraverso il terminale. 63 00:04:01,340 --> 00:04:05,405 >> Dopo di che, andare avanti e creare un nuovo progetto Laravel. 64 00:04:05,405 --> 00:04:07,280 Stiamo davvero andando a usare qualche esempio di codice 65 00:04:07,280 --> 00:04:10,760 che ho messo insieme per creare questo blog. 66 00:04:10,760 --> 00:04:14,420 Ma se si sta iniziando dal zero, si potrebbe utilizzare questo comando 67 00:04:14,420 --> 00:04:18,160 qui, il compositore crea progetto, laravel taglio su laravel, e poi 68 00:04:18,160 --> 00:04:19,940 il nome del progetto. 69 00:04:19,940 --> 00:04:22,275 E che includerà tutto il codice di distribuzione 70 00:04:22,275 --> 00:04:23,733 per iniziare un nuovo progetto Laravel. 71 00:04:23,733 --> 00:04:28,870 Così per i vostri progetti finali CS50, ti probabilmente si desidera utilizzare quel comando. 72 00:04:28,870 --> 00:04:31,210 >> Ma stiamo per iniziare con questo. 73 00:04:31,210 --> 00:04:34,630 Quindi, una volta che hai fatto che, si sta andando ad ottenere 74 00:04:34,630 --> 00:04:40,190 un numero abbastanza ampio di file in blog50. 75 00:04:40,190 --> 00:04:43,840 Così facciamo solo passare attraverso alcuni di questi componenti. 76 00:04:43,840 --> 00:04:49,060 Noterete in questo percorso directory, c'è una cartella app. 77 00:04:49,060 --> 00:04:52,960 All'interno della cartella app, c'è un paio di utili cartelle. 78 00:04:52,960 --> 00:04:56,330 Da segnalare per iniziare è questa cartella config. 79 00:04:56,330 --> 00:04:59,210 Quindi questo imposta come l'applicazione web è 80 00:04:59,210 --> 00:05:04,350 andare, per esempio, l'autenticazione persone o cose contanti o connettersi al database. 81 00:05:04,350 --> 00:05:06,400 >> E che cosa è veramente utile è che Laravel 82 00:05:06,400 --> 00:05:09,130 consente di impostare diversi ambienti di sviluppo. 83 00:05:09,130 --> 00:05:12,090 Quindi quello che abbiamo fatto qui è se andiamo nella cartella locale, 84 00:05:12,090 --> 00:05:14,720 c'è un file database.php. 85 00:05:14,720 --> 00:05:18,320 E si noterà qui che impostare una connessione MySQL 86 00:05:18,320 --> 00:05:22,230 consente alle persone di connettersi al server MySQL che è 87 00:05:22,230 --> 00:05:24,310 direttamente sull'apparecchio CS50. 88 00:05:24,310 --> 00:05:26,980 E stiamo connessione a un database che ho creato chiamato Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Quindi cerchiamo di andare avanti e di fatto eseguire la versione di lavoro di questo, 91 00:05:37,085 --> 00:05:39,710 solo per ottenere un senso di ciò che il applicazione che stiamo costruendo 92 00:05:39,710 --> 00:05:41,390 assomiglia. 93 00:05:41,390 --> 00:05:46,150 Così ho una copia di questo Blog50 completato. 94 00:05:46,150 --> 00:05:51,910 Così Laravel realtà ha costruito in un server 95 00:05:51,910 --> 00:05:53,910 che è possibile eseguire direttamente dalla riga di comando. 96 00:05:53,910 --> 00:05:56,900 Quindi questo è simile al PSet prima quando in realtà 97 00:05:56,900 --> 00:06:00,580 creare il proprio server in C. Così hanno uno costruito in modo 98 00:06:00,580 --> 00:06:04,010 che è possibile eseguire le applicazioni Laravel direttamente dalla linea di comando. 99 00:06:04,010 --> 00:06:11,650 >> Quindi, se facciamo php artigiano servire, questo lancerà un server di sviluppo 100 00:06:11,650 --> 00:06:13,880 sulla porta 8000. 101 00:06:13,880 --> 00:06:18,250 Quindi, se andiamo a host locale 8.000, si noterà che, hey. 102 00:06:18,250 --> 00:06:20,800 Abbiamo il nostro blog attivo e funzionante. 103 00:06:20,800 --> 00:06:25,090 Così Laravel qui sta generando la prima pagina del nostro blog. 104 00:06:25,090 --> 00:06:26,350 Molto semplice applicazione. 105 00:06:26,350 --> 00:06:28,610 Ma ci sono un paio caratteristiche davvero nifty 106 00:06:28,610 --> 00:06:31,346 che fornisce sotto la cappa. 107 00:06:31,346 --> 00:06:33,680 >> Così dell'applicazione blog semplice. 108 00:06:33,680 --> 00:06:36,430 Se volessimo creare un post, possiamo cliccare su quel pulsante. 109 00:06:36,430 --> 00:06:40,470 Possiamo dire, "Hey, tutti. 110 00:06:40,470 --> 00:06:44,530 Questo è davvero un divertente Seminario ", per esempio. 111 00:06:44,530 --> 00:06:46,560 E scrivere qualcosa qui. 112 00:06:46,560 --> 00:06:48,180 Testo qui. 113 00:06:48,180 --> 00:06:51,327 Se si fare clic su Invia, ti notare che il nostro nuovo blog 114 00:06:51,327 --> 00:06:53,410 post è stato aggiunto prima pagina del blog. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Se torniamo qui, si noterà che ci sono stati alcuni commenti già 117 00:06:59,970 --> 00:07:01,160 sul blog. 118 00:07:01,160 --> 00:07:03,630 Quindi, se scorriamo, ti si noti che Jonathan Tan dice 119 00:07:03,630 --> 00:07:08,020 che è stato molto incuriosito da questo post. 120 00:07:08,020 --> 00:07:11,570 >> Quindi andremo in come oggetto mapping relazionale consente 121 00:07:11,570 --> 00:07:16,668 di fare queste relazioni in un modo abbastanza trasparente pure. 122 00:07:16,668 --> 00:07:17,660 Freddo. 123 00:07:17,660 --> 00:07:20,290 Tutte le domande circa la funzionalità di quello che andremo a costruire? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Freddo. 126 00:07:23,840 --> 00:07:28,170 Quindi cominciamo con realtà la creazione delle tabelle del database. 127 00:07:28,170 --> 00:07:33,190 >> Quindi, ricordare che in CS50 Finance, si unire un tavolo per gli utenti 128 00:07:33,190 --> 00:07:37,100 nonché per la scorte nel vostro portafoglio. 129 00:07:37,100 --> 00:07:41,040 Quindi, come abbiamo accennato in precedenza, quello che usiamo in Laravel 130 00:07:41,040 --> 00:07:43,090 è qualcosa di noto come le migrazioni. 131 00:07:43,090 --> 00:07:48,570 Quindi, se torniamo al codice di distribuzione qui, 132 00:07:48,570 --> 00:07:51,790 il primo comando che è utile che Laravel fornisce 133 00:07:51,790 --> 00:07:54,240 è questo comando migrate. 134 00:07:54,240 --> 00:07:59,220 Quindi possiamo fare php migrate artigianale: fare. 135 00:07:59,220 --> 00:08:01,760 Quindi questo ci permette di creare una migrazione. 136 00:08:01,760 --> 00:08:03,710 >> E poi ci vuole per creare una migrazione 137 00:08:03,710 --> 00:08:07,050 chiamato create_posts_table, che sta andando 138 00:08:07,050 --> 00:08:11,521 essere dove stiamo andando a essere riporre i nostri post sul blog. 139 00:08:11,521 --> 00:08:14,690 E si noterà qui che si corre attraverso un codice che in realtà 140 00:08:14,690 --> 00:08:17,580 genera un file con un timestamp su esso. 141 00:08:17,580 --> 00:08:22,260 Quindi, se andiamo a guardare Database, notiamo sotto Migrazioni 142 00:08:22,260 --> 00:08:24,830 che è stato creato un file vuoto per noi, 143 00:08:24,830 --> 00:08:30,100 ha codice standard con il nome che abbiamo specificato, creare posti tavola. 144 00:08:30,100 --> 00:08:31,670 >> E ha due funzioni in esso. 145 00:08:31,670 --> 00:08:40,539 Up è quello che vogliamo eseguire quando il migrazione viene applicato al database. 146 00:08:40,539 --> 00:08:46,380 E giù è quello che stiamo per fare quando vogliamo invertire una migrazione. 147 00:08:46,380 --> 00:08:49,890 Così qui cominciamo fuori con la scrittura di questa migrazione. 148 00:08:49,890 --> 00:08:55,480 Quindi c'è una classe utile in Laravel chiamato Schema. 149 00:08:55,480 --> 00:08:57,910 >> Quindi stiamo andando a correre Schema :: creare. 150 00:08:57,910 --> 00:09:01,080 E stiamo andando a creare un tavolo chiamato post. 151 00:09:01,080 --> 00:09:05,980 E qui applichiamo questo utilizzando una funzione. 152 00:09:05,980 --> 00:09:11,010 E all'interno di questo, stiamo andando a realtà precisare i contenuti della nostra tavola. 153 00:09:11,010 --> 00:09:14,860 Stiamo per creare un ID, che è incremento automatico. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Inoltre, stiamo andando per creare un campo che 156 00:09:24,350 --> 00:09:27,060 rappresenta il titolo del nostro post sul blog. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Stiamo anche andando a creare un campo per memorizzare il testo del nostro post sul blog. 159 00:09:36,950 --> 00:09:40,600 E, infine, stiamo andando a memorizzare alcuni timestamp 160 00:09:40,600 --> 00:09:44,690 per quando il nostro posto è stato creato e quando è stato aggiornato. 161 00:09:44,690 --> 00:09:46,240 E per giù, è abbastanza semplice. 162 00:09:46,240 --> 00:09:53,974 Tutto quello che vogliamo fare è caduta la tabella che abbiamo creato. 163 00:09:53,974 --> 00:09:54,930 >> Grande. 164 00:09:54,930 --> 00:09:55,850 Tutte le domande? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Così ora se andiamo avanti e- realtà, host locale, 167 00:10:07,110 --> 00:10:09,640 mi permetta di cancellare quello che abbiamo avuto in precedenza. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Andate su Database. 170 00:10:15,190 --> 00:10:17,640 Ho intenzione di eliminare quello che avevamo in precedenza. 171 00:10:17,640 --> 00:10:22,870 Eliminare questo e creare un nuovo database Blog50. 172 00:10:22,870 --> 00:10:24,930 Così ora che cosa magica parte è qui che noi 173 00:10:24,930 --> 00:10:28,760 può applicare direttamente queste migrazioni al database utilizzando la riga di comando 174 00:10:28,760 --> 00:10:29,290 utensile. 175 00:10:29,290 --> 00:10:35,100 Quindi, se facciamo php artigiano migrazione, si noterà che, hey. 176 00:10:35,100 --> 00:10:38,320 Ha creato la tabella di migrazione, che daremo uno sguardo a un po ', 177 00:10:38,320 --> 00:10:40,540 ed è applicata questa prima migrazione. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Quindi guardiamo Blog50, si noterà che è stato creato due tavoli per noi. 180 00:10:48,920 --> 00:10:50,300 Il primo è questo tavolo migrazioni. 181 00:10:50,300 --> 00:10:54,130 Quindi, se navighiamo questo, si noterà che questo tavolo è abbastanza semplice. 182 00:10:54,130 --> 00:10:55,490 E 'appena detto che, hey. 183 00:10:55,490 --> 00:10:58,960 Abbiamo applicato questa migrazione. 184 00:10:58,960 --> 00:11:01,470 Andiamo indietro e guardiamo ai posti. 185 00:11:01,470 --> 00:11:05,720 Noterete che la struttura è esattamente quello che avevamo chiesto esso. 186 00:11:05,720 --> 00:11:07,350 Abbiamo un ID incremento automatico. 187 00:11:07,350 --> 00:11:10,450 Abbiamo una stringa per la memorizzazione il titolo, e un campo di testo 188 00:11:10,450 --> 00:11:11,450 per memorizzare il contenuto. 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 Freddo. 192 00:11:15,560 --> 00:11:21,626 Tutte le domande circa le migrazioni lavoro, come possiamo applicarle? 193 00:11:21,626 --> 00:11:22,126 No? 194 00:11:22,126 --> 00:11:23,600 Freddo. 195 00:11:23,600 --> 00:11:26,630 Così ora stiamo per andare avanti ed effettivamente creare il modello. 196 00:11:26,630 --> 00:11:33,100 Così vogliamo creare un modello post che memorizza un'astrazione del database. 197 00:11:33,100 --> 00:11:41,040 Quindi, piuttosto che fare query MySQL direttamente, stiamo andando a creare. 198 00:11:41,040 --> 00:11:45,840 Quindi dobbiamo creare un cartella qui chiamati modelli. 199 00:11:45,840 --> 00:11:48,905 E qui dentro, stiamo andando a creare un file denominato post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> All'interno di questo file PHP, stiamo andando a creare 202 00:11:54,550 --> 00:12:00,590 un posto di classe che estende eloquente. 203 00:12:00,590 --> 00:12:08,950 Eloquente è il nome del ORM motore che Laravel fornisce. 204 00:12:08,950 --> 00:12:12,799 E qui, potremmo aspettarci che hai veramente bisogno di scrivere del codice. 205 00:12:12,799 --> 00:12:14,840 Stiamo per scrivere qualche funzioni di supporto successivi. 206 00:12:14,840 --> 00:12:19,420 Ma fuori dalla scatola, questo sarà già riconoscere ciò che è nel database 207 00:12:19,420 --> 00:12:24,770 e possiamo accedere, dire, il testo del nostro blog o il titolo, 208 00:12:24,770 --> 00:12:29,230 e di creare direttamente con roba praticamente nessun codice di sorta. 209 00:12:29,230 --> 00:12:31,110 >> Ecco, questo è uno dei componenti magiche. 210 00:12:31,110 --> 00:12:34,980 E il vento, una volta questa classe è più a pieno titolo, 211 00:12:34,980 --> 00:12:40,480 includeremo informazioni su ciò che è legato al, così i commenti. 212 00:12:40,480 --> 00:12:42,310 Anche creare una funzione così possiamo realmente 213 00:12:42,310 --> 00:12:46,340 direttamente ottenere l'URL di una pagina di post sul blog. 214 00:12:46,340 --> 00:12:46,840 Freddo. 215 00:12:46,840 --> 00:12:47,881 Tutte le domande di questo? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 No. 218 00:12:51,832 --> 00:12:54,100 Freddo. 219 00:12:54,100 --> 00:12:57,860 >> Così ora, una volta che abbiamo il nostro modello, abbiamo vuole creare un controller che è 220 00:12:57,860 --> 00:13:02,340 in grado di interfacciarsi con questi modelli, e successivamente il database. 221 00:13:02,340 --> 00:13:05,540 Quindi, se diamo uno sguardo alle BlogController, ti 222 00:13:05,540 --> 00:13:08,490 notare che non c'è molto qui in questo momento. 223 00:13:08,490 --> 00:13:13,220 Tutto quello che c'è è una funzione di indice che genera la home page, 224 00:13:13,220 --> 00:13:18,220 ma senza nulla lì per visualizzare ancora. 225 00:13:18,220 --> 00:13:20,560 >> Quindi la prima funzione che stiamo andando a creare 226 00:13:20,560 --> 00:13:25,790 è quella che ci permette per creare un post sul blog. 227 00:13:25,790 --> 00:13:30,540 Quindi stiamo andando a dichiarare una nuova funzione chiamata newPost. 228 00:13:30,540 --> 00:13:36,430 E dentro qui semplicemente, stiamo andando per impostare il layout della pagina 229 00:13:36,430 --> 00:13:41,850 ad essere una versione di rendering, se vi ricordate da CS50, 230 00:13:41,850 --> 00:13:48,020 di questo modello chiamato blog.new, che stiamo andando a creare in un po '. 231 00:13:48,020 --> 00:13:53,170 >> Noterete qui on line sei che abbiamo specificato questa variabile, il layout. 232 00:13:53,170 --> 00:13:55,820 E se diamo uno sguardo presso la cartella Visualizzazioni, 233 00:13:55,820 --> 00:14:01,640 vi è una cartella Layouts, che include un file HTML di base. 234 00:14:01,640 --> 00:14:04,680 E di nota, si noterà che noi abbiamo questo contenitore 235 00:14:04,680 --> 00:14:06,800 qui che produce contenuti. 236 00:14:06,800 --> 00:14:09,460 Così all'interno del nostro modello quello che stiamo andando a fare 237 00:14:09,460 --> 00:14:16,180 è creare quello che sta per essere sostituito direttamente all'interno di questo layout. 238 00:14:16,180 --> 00:14:20,060 >> Così abbiamo detto che vogliamo rendere un modello chiamato blog.new. 239 00:14:20,060 --> 00:14:23,790 Ma dentro di Blog, c'è Non ancora questo nuovo modello. 240 00:14:23,790 --> 00:14:26,910 Quindi stiamo andando a creare un file chiamato new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Questo dice che Laravel questo file PHP dovrebbe 242 00:14:29,860 --> 00:14:31,720 essere resa con la template engine lama. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Quindi questo è abbastanza di file semplice. 245 00:14:42,630 --> 00:14:46,690 E sarà la forma con la quale in realtà aggiungiamo in un post sul blog. 246 00:14:46,690 --> 00:14:49,220 >> Così la magia qui dal ereditarietà è che, hey. 247 00:14:49,220 --> 00:14:52,950 Vogliamo specificare che il sezione, la sezione dei contenuti 248 00:14:52,950 --> 00:14:56,640 qui, che si delinea bysection estop. 249 00:14:56,640 --> 00:15:02,260 Così che cosa è in mezzo qui sta per essere sostituito nel layout master. 250 00:15:02,260 --> 00:15:07,000 Ed ecco quello che vogliamo fare è molto semplice creare un nuovo file HTML. 251 00:15:07,000 --> 00:15:08,690 Diciamo solo aggiungere un titolo veloce. 252 00:15:08,690 --> 00:15:09,600 Aggiungi un post sul blog. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 E all'interno di esso, siamo andando a creare un modulo. 255 00:15:15,390 --> 00:15:19,197 >> Questo modulo sta per avere un'azione. 256 00:15:19,197 --> 00:15:21,780 E questo sta per essere qualcosa che noi sostituiamo in seguito, 257 00:15:21,780 --> 00:15:24,200 e vedremo come percorso si inserisce qui. 258 00:15:24,200 --> 00:15:33,600 Ma stiamo solo andando a definire per ora che questo va ad un URL con il percorso 259 00:15:33,600 --> 00:15:34,860 da createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 E poi questo sta andando avere metodo post. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 All'interno di questo, stiamo andando avere due campi. 264 00:15:47,590 --> 00:15:49,170 Div class = "forma-gruppo". 265 00:15:49,170 --> 00:15:55,806 >> Stiamo utilizzando la libreria Bootstrap CSS gentilmente fornito da Twitter. 266 00:15:55,806 --> 00:15:57,720 Quindi stiamo andando a creare due di questi. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Quindi questo primo ingresso è sarà il titolo. 269 00:16:05,970 --> 00:16:08,437 Nome Così input = "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 Ho intenzione di aggiungere un segnaposto = "Title". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> E poi il secondo è sta per essere un'area di testo. 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 E segnaposto = "Scrivi qui". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Ci andiamo. 282 00:16:43,480 --> 00:16:46,760 Infine, stiamo andando a aggiungere un pulsante rapido presentare. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-primario". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Quindi questi sono tutti caratteristiche di Bootstrap così 286 00:16:55,340 --> 00:16:58,510 che questo può essere posato in un modo che è 287 00:16:58,510 --> 00:17:03,730 preda per l'utente, piuttosto che HTML nudo. 288 00:17:03,730 --> 00:17:06,250 >> Così abbiamo definito il controller qui. 289 00:17:06,250 --> 00:17:08,930 Abbiamo definito una semplice visione. 290 00:17:08,930 --> 00:17:12,339 Ma ciò che manca è il tessuto connettivo. 291 00:17:12,339 --> 00:17:15,420 Quindi a questo punto, Laravel non ha idea di come 292 00:17:15,420 --> 00:17:18,312 stiamo andando a realtà accedere a questo controller. 293 00:17:18,312 --> 00:17:20,270 Quindi questo è definito in un file chiamato routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 E proprio ora, abbiamo un percorso. 296 00:17:24,310 --> 00:17:29,060 Che è quando andiamo al percorso a casa per questo sito, 297 00:17:29,060 --> 00:17:33,140 sta andando a rendere il controller di indice. 298 00:17:33,140 --> 00:17:38,880 Ecco quello che dobbiamo fare è implementare una nuova via per noi per creare un post. 299 00:17:38,880 --> 00:17:41,910 >> Quindi usiamo questo metodo ottenere, che specifica 300 00:17:41,910 --> 00:17:48,650 che, quando un utente cerca di ottenere questo page-- specificamente 301 00:17:48,650 --> 00:17:52,850 post taglio su nuovo page-- quello che stiamo andando a fare 302 00:17:52,850 --> 00:18:02,060 è utilizzare il controller chiamato BlogController nuovo post. 303 00:18:02,060 --> 00:18:03,460 Quello che abbiamo appena creato. 304 00:18:03,460 --> 00:18:08,090 E poi stiamo andando di alias come newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Stiamo per creare un altro funzione in un po '. 307 00:18:19,850 --> 00:18:23,520 Ma cosa c'è qui sotto il tasto "come" è quello 308 00:18:23,520 --> 00:18:28,195 possiamo sostituire entro i nostri modelli lama. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Quindi per ora, diamo in realtà anche dire rotta. 311 00:18:36,230 --> 00:18:38,380 Quindi stiamo anche andando per creare un controllore 312 00:18:38,380 --> 00:18:41,020 in modo che possiamo creare questi posti. 313 00:18:41,020 --> 00:18:46,940 Quindi, se un utente messaggi al post pagina slash nuovo, quello che stiamo per fare 314 00:18:46,940 --> 00:18:51,350 è utilizza un controller che stiamo andando a creare in breve 315 00:18:51,350 --> 00:18:56,160 chiamato BlogController a createPost. 316 00:18:56,160 --> 00:19:01,929 E stiamo per alias questo con come createPost. 317 00:19:01,929 --> 00:19:03,380 Freddo. 318 00:19:03,380 --> 00:19:05,811 >> Tutte le domande? 319 00:19:05,811 --> 00:19:06,310 Freddo. 320 00:19:06,310 --> 00:19:09,790 Quindi cerchiamo di eseguire quello che abbiamo finora. 321 00:19:09,790 --> 00:19:16,930 Quindi, se facciamo php artigiano servire, vedremo un sacco di errori. 322 00:19:16,930 --> 00:19:20,385 Quindi sembra che abbiamo un Errore di sintassi sulle rotte linea 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Manca un punto e virgola. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Quindi, se andiamo a 8.000, vedrete nulla ancora qui. 327 00:19:32,870 --> 00:19:34,740 Quindi questa è la pagina iniziale predefinita. 328 00:19:34,740 --> 00:19:37,730 >> Ma se andiamo a postare tagliare nuovo, hey. 329 00:19:37,730 --> 00:19:40,425 Sarà la forma che abbiamo appena creato. 330 00:19:40,425 --> 00:19:42,550 In questo momento, non ci siamo implementato la funzionalità 331 00:19:42,550 --> 00:19:44,060 di quando si preme il pulsante Invia. 332 00:19:44,060 --> 00:19:47,110 Quindi, se si clicca su Submit tasto, è andare a correre un errore. 333 00:19:47,110 --> 00:19:49,840 Ma andiamo a codice in questo momento, proprio quello che abbiamo 334 00:19:49,840 --> 00:19:54,840 vuole fare quando un utente sostiene questa forma. 335 00:19:54,840 --> 00:19:55,770 >> Allora, facciamo così. 336 00:19:55,770 --> 00:19:57,380 Torna al file Controller. 337 00:19:57,380 --> 00:20:00,180 Quello che andremo a fare è implementare questa nuova funzione 338 00:20:00,180 --> 00:20:04,360 che ci permette di creare un post. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Dichiarare nuova funzione. 341 00:20:08,990 --> 00:20:11,527 Funzione createPost pubblica. 342 00:20:11,527 --> 00:20:14,610 E questa funzione sarà un po 'più sofisticato di quello 343 00:20:14,610 --> 00:20:15,559 che avevamo prima. 344 00:20:15,559 --> 00:20:18,350 Ma vedrete qui che non siamo intenzione di scrivere in realtà qualsiasi SQL. 345 00:20:18,350 --> 00:20:20,980 L'ORM, il Eloquente ORM, sta per consentire 346 00:20:20,980 --> 00:20:26,400 noi facciamo questo in qualche modi un modo più elegante. 347 00:20:26,400 --> 00:20:29,140 >> Quindi stiamo andando a creare un nuovo post. 348 00:20:29,140 --> 00:20:34,120 E qui siamo un'istanza di un nuovo oggetto 349 00:20:34,120 --> 00:20:38,080 dal modello che abbiamo appena creato, il modello di palo. 350 00:20:38,080 --> 00:20:44,450 E quello che stiamo per fare è impostare il attributo title di questo con qualcosa 351 00:20:44,450 --> 00:20:47,380 che otteniamo dal server. 352 00:20:47,380 --> 00:20:52,060 Quindi questo è simile a quello che avevamo prima in CS50 Finance 353 00:20:52,060 --> 00:20:57,750 dove avremmo fatto, utilizzando il Super Global Post cerca di titolo. 354 00:20:57,750 --> 00:21:01,600 >> Così Laravel fornisce alcuni servizi igienico-sanitari e quant'altro utilizzare questa funzione di supporto. 355 00:21:01,600 --> 00:21:07,610 Quindi preferiremmo usare questo invece di questa forma grezza molto semplice da PHP. 356 00:21:07,610 --> 00:21:17,430 E poi quello che andremo a fare è impostare il contenuto di ingresso per ottenere contenuti. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Stiamo davvero andando a avvolgere questo in una funzione utile 359 00:21:22,720 --> 00:21:31,820 che PHP fornisce chiamato nl2br, che trasforma nuove linee, NLS, in brs, pause, 360 00:21:31,820 --> 00:21:35,822 in modo da poter effettivamente diversi punti all'interno di esso. 361 00:21:35,822 --> 00:21:38,030 E infine che cosa stiamo andando fare è salvare questo post. 362 00:21:38,030 --> 00:21:41,686 Così chiamiamo la funzione risparmiare su questo modello. 363 00:21:41,686 --> 00:21:43,800 Stiamo andando a salvare il posto. 364 00:21:43,800 --> 00:21:49,970 E infine quello che andremo a fare è reindirizzare l'utente specificamente 365 00:21:49,970 --> 00:21:55,060 per il percorso che andremo a creare a breve, alias viewPost. 366 00:21:55,060 --> 00:22:00,435 E stiamo andando a passare negli argomenti id, essendo l'id di questo nuovo post. 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 Così ora se abbiamo effettivamente andare e corriamo questo. 370 00:22:09,090 --> 00:22:11,370 Stiamo per aggiungere un nuovo post. 371 00:22:11,370 --> 00:22:15,930 Diciamo che questo è un seminario di 50. 372 00:22:15,930 --> 00:22:17,620 E dire, certo. 373 00:22:17,620 --> 00:22:18,240 ADSL. 374 00:22:18,240 --> 00:22:18,740 Che Cosa Mai. 375 00:22:18,740 --> 00:22:20,320 Una sorta di contenuti. 376 00:22:20,320 --> 00:22:21,180 E inviarlo. 377 00:22:21,180 --> 00:22:23,850 E ci accorgiamo che, hey. percorsi non definiti. 378 00:22:23,850 --> 00:22:32,340 Ma se diamo uno sguardo a phpMyAdmin e cercare o meno la nostra funzione 379 00:22:32,340 --> 00:22:34,370 ha fatto nulla. 380 00:22:34,370 --> 00:22:36,670 Guarda i messaggi Blog50. 381 00:22:36,670 --> 00:22:37,720 Si noterà che, hey. 382 00:22:37,720 --> 00:22:43,530 In realtà, abbiamo appena creiamo quel blog postare con i timestamp come specificato. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Così ora torniamo ed effettivamente creare questa altra funzione nel nostro controller, 385 00:22:51,630 --> 00:22:54,790 in particolare il controllore viewPost. 386 00:22:54,790 --> 00:23:00,290 Funzione viewPost Così pubblico. 387 00:23:00,290 --> 00:23:04,070 Quindi, ecco cosa faremo, invece di avere parentesi vuote, 388 00:23:04,070 --> 00:23:08,800 dobbiamo provare a passare l'ID del il post che stiamo creando. 389 00:23:08,800 --> 00:23:12,800 E da qui che cosa stiamo andando a fare effettivamente interrogare il database per esso. 390 00:23:12,800 --> 00:23:15,140 >> Quindi se noi pubblichiamo, c'è una funzione chiamata 391 00:23:15,140 --> 00:23:18,860 Trova che ci permette di interrogare dal ID. 392 00:23:18,860 --> 00:23:22,110 In particolare, in realtà, stiamo andando a utilizzare una versione alternativa di questo chiamato 393 00:23:22,110 --> 00:23:27,880 Trova o Fail, che ci permette per uscire da questa funzione, 394 00:23:27,880 --> 00:23:34,700 un'eccezione se l'ID passiamo non esiste. 395 00:23:34,700 --> 00:23:37,500 E poi andremo a fare qualcosa simile a quello che abbiamo fatto in precedenza 396 00:23:37,500 --> 00:23:41,100 dove abbiamo impostato il contenuto di questa pagina per essere 397 00:23:41,100 --> 00:23:47,950 la versione resa di questa nuova visione che andremo a creare, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> E stiamo per passare in it-- proprio come nei CS50 render 399 00:23:51,030 --> 00:23:56,645 function-- un dizionario di variabili. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Le chiavi di questo array associativo diventare variabili all'interno del template. 402 00:24:04,620 --> 00:24:06,830 Quindi stiamo andando a fare alberino. 403 00:24:06,830 --> 00:24:12,474 Quindi passare indirettamente il post che abbiamo interrogato dal database. . 404 00:24:12,474 --> 00:24:14,390 Ora che cosa stiamo andando a fare è creare questo punto di vista 405 00:24:14,390 --> 00:24:17,560 in modo da poter effettivamente vedere i post del blog che abbiamo costruito. 406 00:24:17,560 --> 00:24:20,280 >> Quindi stiamo andando a creare un file chiamato view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Quindi all'interno di questo modello, quello che stiamo andando a fare 409 00:24:29,640 --> 00:24:39,700 è mettere insieme una pagina semplice che ci permette di visualizzare il contenuto. 410 00:24:39,700 --> 00:24:44,280 Così facciamo parte, che è prima di contenuti. 411 00:24:44,280 --> 00:24:46,800 Stop. 412 00:24:46,800 --> 00:24:53,920 E che cosa stiamo andando fare entro ecco 413 00:24:53,920 --> 00:24:56,930 scrivere qualche HTML per visualizzare questa pagina. 414 00:24:56,930 --> 00:25:03,590 >> Quindi stiamo andando a avvolgerlo con una fantasia nuovo elemento HTML5 chiamato articolo. 415 00:25:03,590 --> 00:25:05,790 E qui, stiamo andando avere un'intestazione dove 416 00:25:05,790 --> 00:25:12,190 stiamo per avere semplicemente h1, che include il titolo del post. 417 00:25:12,190 --> 00:25:17,120 Ecco, se guardiamo a questo doppia notazione parentesi graffa, 418 00:25:17,120 --> 00:25:21,690 questo farà essenzialmente Php echo titolo del post. 419 00:25:21,690 --> 00:25:25,630 Quindi è una scorciatoia utile che Laravel ci fornisce. 420 00:25:25,630 --> 00:25:31,070 Quindi stiamo andando a utilizzare questa notazione invece. 421 00:25:31,070 --> 00:25:40,220 >> E qui, stiamo andando anche stampare il contenuto di esso. 422 00:25:40,220 --> 00:25:43,480 E qui, stiamo andando fare contenuto del post. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 E giù in fondo ciò che siamo intenzione di fare è creare un piè di pagina. 425 00:25:50,660 --> 00:25:57,690 E nel piè di pagina, che andremo a primo display quando è stata pubblicata. 426 00:25:57,690 --> 00:26:01,320 Quindi questo è stato pubblicato su, creato. 427 00:26:01,320 --> 00:26:07,996 >> E Laravel usa veramente un bel biblioteca data chiamato Carbon. 428 00:26:07,996 --> 00:26:11,120 Così possiamo effettivamente fare qualcosa chiamato difforHumans, che avete visto prima. 429 00:26:11,120 --> 00:26:14,360 Quando abbiamo pubblicato. si dirà, come cinque secondi fa. 430 00:26:14,360 --> 00:26:16,860 Quindi questo è davvero un bel funzionalità di Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 E, infine, stiamo andando per chiudere questa footer. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Così ora se torniamo a Home stiamo andando 435 00:26:31,450 --> 00:26:34,490 vedere nulla ancora qui perché non abbiamo codificato la home page. 436 00:26:34,490 --> 00:26:40,962 Ma se andiamo a postare una barra, stiamo andando a vedere una eccezione. 437 00:26:40,962 --> 00:26:42,670 Qualcuno sa perché vediamo un'eccezione? 438 00:26:42,670 --> 00:26:44,516 Quello che ci manca? 439 00:26:44,516 --> 00:26:45,290 Tutte le idee? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Che cosa abbiamo fatto prima per noi in realtà 442 00:26:49,790 --> 00:26:52,285 per definire come si arriva a particolare i controllori? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> SPEAKER 1: Il percorso? 445 00:26:55,770 --> 00:26:56,519 ERIC OUYANG: Sì. 446 00:26:56,519 --> 00:26:58,070 Quindi dobbiamo ancora definire il percorso. 447 00:26:58,070 --> 00:26:59,794 Così torniamo qui per routes.php. 448 00:26:59,794 --> 00:27:01,710 Noterete che abbiamo Non hanno effettivamente definito 449 00:27:01,710 --> 00:27:05,010 come stiamo andando ottenere a questo controller. 450 00:27:05,010 --> 00:27:06,780 Così ora stiamo andando a definire questo percorso. 451 00:27:06,780 --> 00:27:09,280 E 'abbastanza semplice, simile a quello che abbiamo fatto in precedenza. 452 00:27:09,280 --> 00:27:13,910 Ma quello che stiamo andando a notare qui è che stiamo per avere un segnaposto. 453 00:27:13,910 --> 00:27:18,730 >> Quindi, se facciamo route.get ID barra posta. 454 00:27:18,730 --> 00:27:24,290 Così ID ora è quello che sta succedendo a essere passato nel controllore. 455 00:27:24,290 --> 00:27:27,820 Questo sta per utilizzare il controller che abbiamo appena 456 00:27:27,820 --> 00:27:33,560 creato, BlogController a viewPost. 457 00:27:33,560 --> 00:27:36,420 E stiamo andando a alias questo come 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 Così ora stiamo andando a creare questo percorso. 461 00:27:49,470 --> 00:27:52,100 >> Così ora se andiamo qui e aggiornare questa pagina, 462 00:27:52,100 --> 00:27:54,410 noi in realtà ne abbiamo il nostro nuovo post sul blog. 463 00:27:54,410 --> 00:27:57,710 Quindi questo è quello che abbiamo creato in precedenza. 464 00:27:57,710 --> 00:28:01,320 Molto semplice pagina, ma viene visualizzato il blog post che abbiamo appena creato. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Freddo. 467 00:28:04,760 --> 00:28:08,880 E se abbiamo effettivamente passare attraverso l'intero processo di creazione di un nuovo post sul blog, 468 00:28:08,880 --> 00:28:11,700 ci accorgiamo che tutto reindirizza correttamente. 469 00:28:11,700 --> 00:28:12,950 Se dico: "Ciao. 470 00:28:12,950 --> 00:28:15,710 Sono Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Dire, "Questo è il mio post sul blog." 472 00:28:18,550 --> 00:28:22,830 E lo presenta, questo creerà questo nuovo post del blog con ID 2, 473 00:28:22,830 --> 00:28:28,920 che incrementi da quello che avevamo in precedenza e visualizza correttamente. 474 00:28:28,920 --> 00:28:30,760 Impressionante. 475 00:28:30,760 --> 00:28:32,930 >> Tutte le domande? 476 00:28:32,930 --> 00:28:33,430 Sì? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2: Does maniglia Laravel sanificazione e tutto per voi? 478 00:28:36,537 --> 00:28:37,245 ERIC OUYANG: Sì. 479 00:28:37,245 --> 00:28:42,990 Così, quando abbiamo visto prima, quando abbiamo fatto ingresso colon colon ottenere, 480 00:28:42,990 --> 00:28:47,720 che sanitates qualsiasi SQL iniezioni e quant'altro 481 00:28:47,720 --> 00:28:51,660 che si potrebbe desiderare di effettuare, se siamo un utente malintenzionato del sito. 482 00:28:51,660 --> 00:28:54,115 Così Laravel gestisce un sacco di che dietro le quinte. 483 00:28:54,115 --> 00:28:57,030 Buona domanda. 484 00:28:57,030 --> 00:29:00,390 >> Quindi, diamo uno sguardo alla home page. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Quindi, se prima torniamo al controller per la home page, 487 00:29:06,790 --> 00:29:08,740 si noterà che non fa molto qui. 488 00:29:08,740 --> 00:29:11,620 Noterete che non siamo passando in questo controller 489 00:29:11,620 --> 00:29:13,830 nulla di particolarmente utile. 490 00:29:13,830 --> 00:29:16,660 E 'solo questo file di indice. 491 00:29:16,660 --> 00:29:18,770 >> Quindi passiamo in questo qualcosa utile. 492 00:29:18,770 --> 00:29:21,450 E in particolare, siamo andando a passare in posti. 493 00:29:21,450 --> 00:29:28,740 E Laravel ci permette per fare posto tutto, che 494 00:29:28,740 --> 00:29:30,625 ci permetterà di ottenere tutti i posti. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Ora, se torniamo a index.php, vedrete, hey. 497 00:29:35,730 --> 00:29:37,060 Niente qui ancora. 498 00:29:37,060 --> 00:29:41,290 Ma quello che vogliamo fare qui è in realtà scorrere, 499 00:29:41,290 --> 00:29:46,420 fare un ciclo foreach sui post che ci permette di stampare i messaggi. 500 00:29:46,420 --> 00:29:53,180 >> Così come i messaggi foreach posto, quello che vogliamo fare 501 00:29:53,180 --> 00:29:57,252 è stampare il contenuto del post sul blog. 502 00:29:57,252 --> 00:30:00,210 Ma una cosa che si nota è che abbiamo effettivamente scritto la maggior parte di quel codice 503 00:30:00,210 --> 00:30:01,370 già, in view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Così che cosa stiamo andando a fare è in realtà utilizzare una bella caratteristica utile di Blade 506 00:30:08,640 --> 00:30:11,300 e fattore questo codice comune. 507 00:30:11,300 --> 00:30:12,570 Così siamo andate qui. 508 00:30:12,570 --> 00:30:16,210 >> Stiamo andando a prendere questo contenuto proprio qui, e quello che stiamo andando a fare 509 00:30:16,210 --> 00:30:18,170 è creare una nuova cartella. 510 00:30:18,170 --> 00:30:20,364 Diciamo solo chiamano partial. 511 00:30:20,364 --> 00:30:22,530 E qui, stiamo andando per creare un post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Così qui, abbiamo scomposto il modo in che vogliamo visualizzare questi messaggi. 514 00:30:33,100 --> 00:30:38,690 Ed ecco quello che faremo invece di in realtà avere direttamente che HTML, 515 00:30:38,690 --> 00:30:41,530 stiamo andando a utilizzare questa direttiva chiamato includono blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> E quello che stiamo per fare qui è passare nel post della pagina. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Così ora se torniamo qui, faremo si noti che la funzionalità è ancora 520 00:31:01,050 --> 00:31:01,550 lo stesso. 521 00:31:01,550 --> 00:31:05,140 Ma ora abbiamo questo fattorizzato codice, questo HTML. 522 00:31:05,140 --> 00:31:07,070 Così possiamo usarlo in Index. 523 00:31:07,070 --> 00:31:09,090 Ecco, questo è molto semplice. 524 00:31:09,090 --> 00:31:17,870 Tutto ciò che facciamo è includere blog.partials.post e array. 525 00:31:17,870 --> 00:31:20,845 E da qualche parte a prima, noi alberino. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Così ora se torniamo al home page, vedremo che, hey. 528 00:31:28,182 --> 00:31:30,515 Abbiamo una lista di tutti i post del blog che avevamo prima. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Potremmo voler aggiungere qualche "se" condizioni e le condizioni "altro" 531 00:31:37,700 --> 00:31:39,979 in modo che se non abbiamo nulla sul blog, 532 00:31:39,979 --> 00:31:41,520 vogliamo visualizzare qualcosa utile. 533 00:31:41,520 --> 00:31:42,570 Come, hey. 534 00:31:42,570 --> 00:31:44,340 Non c'è ancora nessun contenuto sul blog. 535 00:31:44,340 --> 00:31:47,670 E se voi ragazzi davvero guardare a il codice distribuzione su GitHub, 536 00:31:47,670 --> 00:31:50,100 vedrete un esempio di come lo facciamo. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Freddo. 539 00:31:54,110 --> 00:31:54,890 Tutte le domande? 540 00:31:54,890 --> 00:31:55,510 Sì. 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2: Credo solo una domanda fondamentale. 542 00:31:57,468 --> 00:31:59,480 Torna al percorso. 543 00:31:59,480 --> 00:32:00,230 ERIC OUYANG: Sì. 544 00:32:00,230 --> 00:32:01,935 Se diamo uno sguardo alle rotte. 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2: Da dove viene il uses.blogcontroller a creare dopo, 546 00:32:06,018 --> 00:32:07,560 cosa ci indirizzano a? 547 00:32:07,560 --> 00:32:08,310 ERIC OUYANG: Sì. 548 00:32:08,310 --> 00:32:08,550 Sì. 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2: O quello che è che-- 550 00:32:09,716 --> 00:32:12,620 ERIC OUYANG: Allora, date un'occhiata, dire per esempio, questo percorso proprio qui. 551 00:32:12,620 --> 00:32:17,190 La prima parte è l'attuale URL che l'utente andrà a. 552 00:32:17,190 --> 00:32:19,930 E questo array qui, array associativo, definisce 553 00:32:19,930 --> 00:32:24,520 come vogliamo avere la applicazione agire in risposta ad essa. 554 00:32:24,520 --> 00:32:29,090 Quindi utilizza è il controller, la funzione che 555 00:32:29,090 --> 00:32:31,610 desidera chiamare quando un utente va a questo URL. 556 00:32:31,610 --> 00:32:35,190 Così viewPost proprio qui è stato un funzione che abbiamo definito dentro 557 00:32:35,190 --> 00:32:36,100 di BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2: Capisco. 559 00:32:37,160 --> 00:32:39,368 >> ERIC OUYANG: --quindi che noi può effettivamente rendere una vista, 560 00:32:39,368 --> 00:32:42,590 eseguire alcuni calcoli, interagire con il database SQL. 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC OUYANG: E poi l'altro parte, "come" è un alias che usiamo. 563 00:32:46,960 --> 00:32:50,714 Quindi, se ci accorgiamo quando abbiamo creato la forma, 564 00:32:50,714 --> 00:32:52,380 si noterà che URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Così sostituisce nel reale URL in modo che non siamo duri 567 00:32:58,330 --> 00:33:02,940 codifica questi in modo che possiamo cambiare una volta, diciamo se volevamo rinominare. 568 00:33:02,940 --> 00:33:06,055 Invece di barra posta nuovo, vogliamo fare come, p 569 00:33:06,055 --> 00:33:09,490 tagliare nuovo solo per la pulizia i nostri URL di un bit. 570 00:33:09,490 --> 00:33:14,740 Vorremmo cambiare in un punto piuttosto che in tutti i diversi file. 571 00:33:14,740 --> 00:33:15,451 >> Freddo. 572 00:33:15,451 --> 00:33:15,950 Quello è buono. 573 00:33:15,950 --> 00:33:20,070 Così ora abbiamo una piattaforma di blog di base. 574 00:33:20,070 --> 00:33:24,260 Probabilmente vogliamo aggiungere in un pulsante in modo che possiamo effettivamente creare nuovi posti. 575 00:33:24,260 --> 00:33:27,850 Quindi, se diamo uno sguardo al Master Layout, 576 00:33:27,850 --> 00:33:31,280 abbiamo una sezione chiamata Intestazione Destra che abbiamo appena definito nella parte superiore. 577 00:33:31,280 --> 00:33:34,820 Così possiamo aggiungere pulsanti a all'inizio dell'intestazione. 578 00:33:34,820 --> 00:33:43,950 >> Quindi, se andiamo a index.blade.php, in realtà fare è definire ciò che accade dentro di qui. 579 00:33:43,950 --> 00:33:46,970 Quindi questa sezione Intestazione Destra, quello che stiamo andando a fare 580 00:33:46,970 --> 00:33:55,240 è aggiungere in un pulsante per andare al URL definito per via nuovo post. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Giusto per ripulirlo e fare abbastanza e tutto Bootstrap, 583 00:34:01,660 --> 00:34:04,630 stiamo andando a fare questo tasto un default. 584 00:34:04,630 --> 00:34:07,794 Diciamo solo rendono grande per divertimento. 585 00:34:07,794 --> 00:34:09,969 >> E al suo interno, si potrebbe mettere un po 'del testo. 586 00:34:09,969 --> 00:34:14,030 Ma ciò che Bootstrap fornisce è glyphicons. 587 00:34:14,030 --> 00:34:17,840 Così possiamo davvero aggiungere a quella bella matita che abbiamo visto in precedenza. 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-matita. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Quindi questo ci consentirà di mettere in una icona al posto del testo. 593 00:34:35,340 --> 00:34:38,960 Ora, se ci fermiamo, questo definirà questa sezione. 594 00:34:38,960 --> 00:34:39,460 E, hey. 595 00:34:39,460 --> 00:34:45,000 Abbiamo un bel pulsante che ci lega direttamente alla aggiungere una pagina di post del blog. 596 00:34:45,000 --> 00:34:46,659 >> Così abbiamo una abbastanza semplice blog. 597 00:34:46,659 --> 00:34:49,710 Possiamo aggiungere cose ad esso. 598 00:34:49,710 --> 00:34:53,650 Ma ciò che generalmente si aspetta dai blog è commentare. 599 00:34:53,650 --> 00:34:57,340 Quindi è molto importante per noi avere, dire, se qualcuno visita un sito web 600 00:34:57,340 --> 00:35:00,620 e gli piace davvero il post che possono impegnarsi in una discussione 601 00:35:00,620 --> 00:35:03,100 con le altre persone che visitano la pagina. 602 00:35:03,100 --> 00:35:07,050 Quindi stiamo per andare a creare un nuova tabella del database e un nuovo modello 603 00:35:07,050 --> 00:35:12,220 di modo che possiamo associare commenta con messaggi. 604 00:35:12,220 --> 00:35:17,370 >> Quindi il primo passo, come prima, è che abbiamo bisogno di eseguire una migrazione. 605 00:35:17,370 --> 00:35:21,982 Così come prima, noi php artigiano migrazione: fare. 606 00:35:21,982 --> 00:35:24,440 E stiamo andando a creare un chiamato create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Questo creerà un file che ha la nostra nuova migrazione. 609 00:35:36,080 --> 00:35:40,170 E stiamo andando, come prima, definire una nuova tabella. 610 00:35:40,170 --> 00:35:42,773 Così Schema :: creare un tavolo chiamato commenti. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Questa funzione qui. 613 00:35:48,430 --> 00:35:51,620 E dentro questa tabella cosa stiamo andando a fare è in primo luogo, 614 00:35:51,620 --> 00:35:54,260 come prima, assegnare un ID. 615 00:35:54,260 --> 00:35:56,552 Incrementa ID. 616 00:35:56,552 --> 00:36:05,440 >> Stiamo per consentire agli utenti di associare il loro nome con un particolare commento. 617 00:36:05,440 --> 00:36:10,080 Stiamo per avere qualche contenuto va di pari passo con questo, il contenuto del testo. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 Ed ecco quello che stiamo andando a fare è qualcosa di diverso. 620 00:36:15,910 --> 00:36:23,620 Stiamo per creare un intero che si chiama post_id che 621 00:36:23,620 --> 00:36:32,100 sta a significare che cosa messaggio un particolare commento va con. 622 00:36:32,100 --> 00:36:35,410 >> Inoltre, stiamo davvero andando a impostare un vincolo di chiave esterna su questo. 623 00:36:35,410 --> 00:36:37,750 Così MySQL applicherà tale. 624 00:36:37,750 --> 00:36:39,840 Non stiamo cercando di assegnare numero commento 625 00:36:39,840 --> 00:36:44,440 5 di inviare 5.000 se non abbiamo aveva 5.000 messaggi su di esso. 626 00:36:44,440 --> 00:36:50,240 Quindi quello che facciamo qui, facciamo post_id straniera 627 00:36:50,240 --> 00:37:02,046 sta per essere associato il campo ID dai pali della tabella. 628 00:37:02,046 --> 00:37:05,900 E faremo davvero fare qualcosa altro utile, è onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Quindi, se cancelliamo alcuni postare dal database, 630 00:37:11,180 --> 00:37:15,507 che vogliamo cascata il elimina per i commenti pure. 631 00:37:15,507 --> 00:37:18,090 Perché non è molto utile per noi avere commenti sui post 632 00:37:18,090 --> 00:37:19,900 che non esistono. 633 00:37:19,900 --> 00:37:23,764 E infine, come prima, siamo andando a impostare data e ora su questo. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 E come prima, stiamo andando a hanno la migrazione inversa sia 636 00:37:33,510 --> 00:37:37,920 cadere il tavolo commenti. 637 00:37:37,920 --> 00:37:40,070 >> Così ora se andiamo indietro di qui, stiamo andando 638 00:37:40,070 --> 00:37:43,110 per eseguire questa migrazione, artigiano migrate. 639 00:37:43,110 --> 00:37:46,400 E ora è applicato questo migrazione che abbiamo appena creato. 640 00:37:46,400 --> 00:37:50,080 Quindi, se abbiamo uno sguardo a phpMyAdmin, facciamo, infatti, ora 641 00:37:50,080 --> 00:37:53,210 avere una tabella osservazioni che ha la struttura che abbiamo appena specificato. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Così come prima, siamo andando a creare un nuovo modello 644 00:37:59,610 --> 00:38:04,450 di astrarre la tabella SQL che abbiamo appena creato. 645 00:38:04,450 --> 00:38:05,450 >> Quindi cerchiamo di aggiungere un nuovo file. 646 00:38:05,450 --> 00:38:06,908 Stiamo andando a chiamarlo comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 E questo è in realtà sta per essere abbastanza semplice, con una piccola modifica 649 00:38:15,490 --> 00:38:17,520 da quello che avevamo prima. 650 00:38:17,520 --> 00:38:22,790 Così classe Comment estende eloquente. 651 00:38:22,790 --> 00:38:25,930 E che cosa stiamo andando di fare qui è di definire 652 00:38:25,930 --> 00:38:31,360 una funzione che è il rapporto con gli altri modelli. 653 00:38:31,360 --> 00:38:39,250 Quindi stiamo andando ad avere una funzione di palo qui che restituisce questo rapporto. 654 00:38:39,250 --> 00:38:43,330 Quindi stiamo specificando che questo appartiene a postare, 655 00:38:43,330 --> 00:38:49,200 dicendo che c'è un posto che questo commento appartiene. 656 00:38:49,200 --> 00:38:53,917 >> Questo è in realtà essere P maiuscola per il modello. 657 00:38:53,917 --> 00:38:56,500 Ed ora proprio dall'altra vibrazione lato, dobbiamo dire che, hey. 658 00:38:56,500 --> 00:38:58,160 Messaggi sono commenti. 659 00:38:58,160 --> 00:39:03,030 Così che cosa stiamo andando a fare è definire commenti funzione pubblica. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 E qui viene restituito questo ha molti commento. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Così ora magicamente quando abbiamo un post, siamo in grado di ottenere i commenti degli attributi 664 00:39:22,010 --> 00:39:25,615 e sarà popolare con la informazioni dal database. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Quindi cerchiamo di realmente passare attraverso e aggiungere una nuova funzionalità al nostro file view 667 00:39:38,220 --> 00:39:43,600 in modo che possiamo entrambi visualizzazione e creare commenti. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Quindi stiamo andando a definire una nuova sezione. 670 00:39:56,865 --> 00:39:59,890 Diciamo solo che separano con una linea orizzontale. 671 00:39:59,890 --> 00:40:04,065 Sezione id = "commenti". 672 00:40:04,065 --> 00:40:06,990 Quello che faremo qui è, come prima, 673 00:40:06,990 --> 00:40:09,880 scorrere tutti i commenti. 674 00:40:09,880 --> 00:40:12,960 Così in realtà come facciamo questo è, come ho già detto, abbastanza magico. 675 00:40:12,960 --> 00:40:14,440 >> Facciamo inviare commenti. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 E allora possiamo fare questo per ogni ciclo su ciascuno dei commenti. 678 00:40:22,710 --> 00:40:25,740 E quello che stiamo andando a fare è div class commento, 679 00:40:25,740 --> 00:40:29,240 e stiamo andando a realtà stampare questo commento. 680 00:40:29,240 --> 00:40:34,150 Quindi visualizzare che hey, commento nome-- la persona 681 00:40:34,150 --> 00:40:38,080 che ha postato questo comment-- dice dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Stiamo andando a mettere questo in un blocco preventivo, solo per farlo sembrare bello. 683 00:40:41,240 --> 00:40:46,470 E poi commentare contenuti preventivo blocco. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 E foreach. 686 00:40:50,892 --> 00:40:53,100 Così ora questo sta per ciclo attraverso tutti i commenti 687 00:40:53,100 --> 00:40:56,500 che è associato con ciascuno dei messaggi 688 00:40:56,500 --> 00:41:00,960 e visualizzare ciascuna di queste osservazioni. 689 00:41:00,960 --> 00:41:05,120 Ho intenzione di aggiungere un'altra sezione in basso qui, che ci permette di aggiungere un commento. 690 00:41:05,120 --> 00:41:07,400 Classe Così h3. 691 00:41:07,400 --> 00:41:09,580 Mettere un titolo qui. 692 00:41:09,580 --> 00:41:10,934 Aggiungi un commento. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 E stiamo andando a definire una nuova forma. 695 00:41:15,700 --> 00:41:18,730 >> Così come prima, siamo intenzione di fare form action. 696 00:41:18,730 --> 00:41:22,740 E qui, la nuova azione è che siamo andando a definire un nuovo controller che 697 00:41:22,740 --> 00:41:26,770 ci permette di rispondere a postare le richieste per la creazione di commenti. 698 00:41:26,770 --> 00:41:33,365 Così URL :: percorso createComment. 699 00:41:33,365 --> 00:41:37,730 Ho intenzione di passare nel parametro qui. 700 00:41:37,730 --> 00:41:40,380 L'ID del post che stiamo creando commento. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 E poi il metodo della presente modulo sta per essere posta. 703 00:41:50,280 --> 00:41:57,240 >> Ora stiamo andando ad aggiungere in una due campi, gruppo modulo. 704 00:41:57,240 --> 00:42:04,670 Questo sarà un ingresso con nome "nome" e class = "forma-control", 705 00:42:04,670 --> 00:42:14,250 type = "text", e con la segnaposto = "Il tuo nome". 706 00:42:14,250 --> 00:42:19,380 Stiamo anche andando a definire un altro campo modulo, che 707 00:42:19,380 --> 00:42:22,970 sta per essere un testo zona come avevamo prima. 708 00:42:22,970 --> 00:42:25,480 Proprio come prima, lo chiamano il contenuto. 709 00:42:25,480 --> 00:42:31,160 Class = "forma di controllo." 710 00:42:31,160 --> 00:42:41,660 Segnaposto = "Scrivi qui". 711 00:42:41,660 --> 00:42:44,100 >> E proprio così che abbiamo può effettivamente sottopone, 712 00:42:44,100 --> 00:42:55,740 submit tipo e class = "btn btn-primario." 713 00:42:55,740 --> 00:42:57,005 Chiudere il modulo. 714 00:42:57,005 --> 00:42:59,010 Chiudi questa azione. 715 00:42:59,010 --> 00:43:06,580 Così ora se si aggiorna la pagina dove abbiamo, per esempio, un posto particolare. 716 00:43:06,580 --> 00:43:10,310 Dobbiamo riavviare il server. 717 00:43:10,310 --> 00:43:12,340 PHP artigianale servire. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Riavviare questo. 720 00:43:18,334 --> 00:43:19,500 Dobbiamo definire il percorso. 721 00:43:19,500 --> 00:43:25,090 Ma per ora, limitiamoci a prendere questo in modo che si possa effettivamente dimostrare 722 00:43:25,090 --> 00:43:28,750 ciò che la pagina assomiglia, e poi saremo effettivamente creare quel percorso. 723 00:43:28,750 --> 00:43:29,250 Quindi, hey. 724 00:43:29,250 --> 00:43:37,080 Abbiamo questa nuova forma qui in modo che possiamo creare commenti. 725 00:43:37,080 --> 00:43:39,950 Quindi cerchiamo di definire una realtà funzione all'interno del controller 726 00:43:39,950 --> 00:43:43,020 in modo da poter aggiungere commenti. 727 00:43:43,020 --> 00:43:43,650 Torniamo. 728 00:43:43,650 --> 00:43:48,420 E all'interno blogcontroller.php, quello che stiamo andando a fare 729 00:43:48,420 --> 00:43:51,620 è creare una nuova funzione chiamato creare commento. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Funzione createComment pubblica. 732 00:43:57,040 --> 00:44:00,130 Questo sta per avere un unico parametro, l'ID dei posti 733 00:44:00,130 --> 00:44:02,280 che stiamo commentando. 734 00:44:02,280 --> 00:44:04,790 E come prima, siamo andando alla prima ottenere il posto. 735 00:44:04,790 --> 00:44:10,790 Così postare, findOrfail id. 736 00:44:10,790 --> 00:44:15,020 In seguito, stiamo andando per creare un nuovo commento. 737 00:44:15,020 --> 00:44:18,880 Così commenta = new Comment. 738 00:44:18,880 --> 00:44:26,820 Commento name = ingresso :: get nome. 739 00:44:26,820 --> 00:44:39,420 Commento content = stessa nuova linea in pause di ingresso :: ottenere contenuti. 740 00:44:39,420 --> 00:44:43,460 >> E, infine, stiamo andando ad avere per associare questo commento con il post. 741 00:44:43,460 --> 00:44:47,230 Quindi stiamo andando a utilizzare questa funzione, commenti, 742 00:44:47,230 --> 00:44:50,260 che permette di risparmiare questo rapporto. 743 00:44:50,260 --> 00:44:54,780 Così ora questo commento avrà automaticamente l'id. 744 00:44:54,780 --> 00:44:57,640 Potremmo anche impostarlo manualmente, ma questo è 745 00:44:57,640 --> 00:45:02,490 più facile da leggere fino come funzione va. 746 00:45:02,490 --> 00:45:05,860 E dopo eseguiamo questo, che cosa vogliamo fare 747 00:45:05,860 --> 00:45:10,840 è reindirizzare l'utente al via indicata dalle viewPost 748 00:45:10,840 --> 00:45:16,010 con la matrice con la parametro l'id. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> E ora in modo che questo effettivamente funzioni, abbiamo bisogno di definire questo percorso. 751 00:45:24,660 --> 00:45:27,126 Percorso :: posta. 752 00:45:27,126 --> 00:45:32,800 E ora stiamo andando a chiamare questo dopo taglio su ID barra commento. 753 00:45:32,800 --> 00:45:36,725 Array utilizza la nuova funzione che abbiamo appena creato. 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 come 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 >> Così ora si spera, se aggiornare questa pagina e aggiungere in un commento, ad esempio, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Speriamo che questo funziona." 762 00:46:03,920 --> 00:46:05,216 Submit. 763 00:46:05,216 --> 00:46:09,050 Noi, infatti, abbiamo un commentare questo post del blog. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Freddo. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Così ora abbiamo una abbastanza funzionale post sul blog. 768 00:46:21,430 --> 00:46:23,180 Stiamo solo andando a aggiungere un paio di modifiche così 769 00:46:23,180 --> 00:46:29,090 che abbiamo un po 'di utile informazioni su questi posti. 770 00:46:29,090 --> 00:46:32,780 >> Quindi, se torniamo al prima pagina, non abbiamo alcun senso 771 00:46:32,780 --> 00:46:38,790 di quanti commenti sono su ciascuno di questi messaggi. 772 00:46:38,790 --> 00:46:41,340 Così che cosa stiamo realmente andando di fare è, dentro il nostro modello, 773 00:46:41,340 --> 00:46:51,250 definire una funzione di supporto che permette noi di specificare il numero di commenti 774 00:46:51,250 --> 00:46:53,020 che andare con un determinato posto. 775 00:46:53,020 --> 00:46:56,050 Quindi stiamo andando a creare una funzione di supporto. 776 00:46:56,050 --> 00:46:58,020 >> Funzione pubblica. 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 Quindi una stringa che specifica il numero di commenti che vanno con esso. 780 00:47:07,180 --> 00:47:12,850 E quello che andremo a fare è dire che num = questo commento è importante. 781 00:47:12,850 --> 00:47:15,150 Quindi stiamo andando a contare il numero di commenti. 782 00:47:15,150 --> 00:47:22,900 E se questo numero è uguale a 1, siamo solo andando a ritornare 1 commento. 783 00:47:22,900 --> 00:47:28,890 E poi altrimenti, vogliamo tornare la concatenazione di num e commenti, 784 00:47:28,890 --> 00:47:31,890 in modo da ottenere la pluralizzazione corretta. 785 00:47:31,890 --> 00:47:33,380 Basta fare questo una sola offerta. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Un commento. 788 00:47:37,640 --> 00:47:41,140 >> E ora siamo in grado di utilizzare questa funzione direttamente all'interno del nostro punto di vista. 789 00:47:41,140 --> 00:47:44,510 Quindi, se torniamo al posti parziali che abbiamo creato, 790 00:47:44,510 --> 00:47:49,370 ora vogliamo realmente visualizzare il numero di commenti. 791 00:47:49,370 --> 00:47:52,660 Che cosa possiamo fare è posta, utilizzare questa funzione 792 00:47:52,660 --> 00:47:57,230 che abbiamo appena creato a visualizzare il numero di commenti. 793 00:47:57,230 --> 00:48:00,440 Quindi, se ora aggiorniamo, esso fa, infatti, mostra 794 00:48:00,440 --> 00:48:02,240 i commenti numero che vanno con esso. 795 00:48:02,240 --> 00:48:05,320 >> Se volessimo essere di fantasia se si in realtà guardare il codice di distribuzione, 796 00:48:05,320 --> 00:48:07,800 possiamo effettivamente collegare questo per i commenti. 797 00:48:07,800 --> 00:48:17,040 Se vi ricordate, abbiamo definito nel vedere che questo ha commenti sezione ID. 798 00:48:17,040 --> 00:48:22,460 Quindi, se abbiamo effettivamente voluto collegare direttamente alla sezione commenti, cosa 799 00:48:22,460 --> 00:48:36,000 noi facciamo qui è a href URL del viewPost percorso. 800 00:48:36,000 --> 00:48:40,550 Passate il ID matrice di posta ID. 801 00:48:40,550 --> 00:48:46,140 E poi vogliamo andare a in particolare la sezione commenti. 802 00:48:46,140 --> 00:48:49,900 >> Qui cerchiamo di chiudere la A tag. 803 00:48:49,900 --> 00:48:52,950 Così ora se ci rinfreschiamo questa pagina, si clicca su questo. 804 00:48:52,950 --> 00:48:54,700 Andremo direttamente la sezione commenti. 805 00:48:54,700 --> 00:48:57,580 Se avessimo un post più lungo, è possibile effettivamente vedere questo rimbalzo verso il basso. 806 00:48:57,580 --> 00:49:02,668 Ma si noterà che è Non nella parte superiore della pagina. 807 00:49:02,668 --> 00:49:04,090 Freddo. 808 00:49:04,090 --> 00:49:04,600 Grande. 809 00:49:04,600 --> 00:49:08,582 Quindi questo è un abbastanza semplice esempio di qualcosa di semplice 810 00:49:08,582 --> 00:49:09,790 che si può fare con Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Ma si può notare qui che abbiamo fatto un sacco di cose 812 00:49:13,230 --> 00:49:16,200 con abbastanza piccola quantità di codice. 813 00:49:16,200 --> 00:49:19,420 Laravel ci permette di fare il Query SQL dietro le quinte. 814 00:49:19,420 --> 00:49:21,960 Si fa il risanamento per noi dietro le quinte. 815 00:49:21,960 --> 00:49:25,940 Ci permette di fare queste relazioni molto facilmente senza di noi dover 816 00:49:25,940 --> 00:49:33,350 di fare qualsiasi SQL join dichiarazioni unire i commenti con ciò che i posti. 817 00:49:33,350 --> 00:49:36,480 Ci permette di fare questo eredità di modelli 818 00:49:36,480 --> 00:49:43,780 di modo che possiamo definire questi nidificazione i file in modo non stiamo ripeterci, 819 00:49:43,780 --> 00:49:47,020 proprio come quando abbiamo avuto quella visualizzazione dei post del blog 820 00:49:47,020 --> 00:49:50,770 che non abbiamo a copiare e incollare il codice. 821 00:49:50,770 --> 00:49:55,450 >> E da qui si può costruire applicazioni sempre più complesse. 822 00:49:55,450 --> 00:49:58,370 Potete immaginare se ci voluto implementare di log-in, 823 00:49:58,370 --> 00:50:05,532 potremmo dire, portare in un terzo quadro che ci permette di fare questo. 824 00:50:05,532 --> 00:50:07,490 C'è un gruppo di loro che sono veramente, veramente 825 00:50:07,490 --> 00:50:09,970 grande che può fare come, il recupero della password. 826 00:50:09,970 --> 00:50:14,450 E ti invieremo un reimpostare la password di posta elettronica. 827 00:50:14,450 --> 00:50:18,260 Siamo in grado di implementare il permesso in modo che io possa creare un post, 828 00:50:18,260 --> 00:50:20,350 ma qualcun altro non può modificarlo. 829 00:50:20,350 --> 00:50:24,610 Siamo in grado di implementare funzionalità per eliminare i messaggi. 830 00:50:24,610 --> 00:50:28,160 >> Ma potete vedere qui che abbiamo abbastanza molto tutti i componenti rudimentali 831 00:50:28,160 --> 00:50:31,640 per costruire alcuni davvero, davvero, applicazioni web dinamiche ed eccitanti. 832 00:50:31,640 --> 00:50:34,035 E con questo, penso che siamo buoni. 833 00:50:34,035 --> 00:50:35,720 Voi ragazzi avete delle domande? 834 00:50:35,720 --> 00:50:36,220 Sì? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3: Come si fa ottenere contenuto statico? 836 00:50:38,090 --> 00:50:39,256 >> ERIC OUYANG: il contenuto statico. 837 00:50:39,256 --> 00:50:45,520 Quindi, mentre prima, quando avevamo questo qui, questo contenuto il layout, 838 00:50:45,520 --> 00:50:49,625 vista marca, abbiamo avuto questo senza che questo array seguito. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, abbiamo avuto questo come solo un file statico. 841 00:50:59,152 --> 00:51:00,860 Quindi, se non passiamo nulla lungo di esso, 842 00:51:00,860 --> 00:51:03,340 sarà solo rendere direttamente il codice HTML. 843 00:51:03,340 --> 00:51:09,240 Ma se passiamo in questo associativa serie di posti, che è dinamicamente 844 00:51:09,240 --> 00:51:12,950 tirato dal database, può rendere la pagina dinamica. 845 00:51:12,950 --> 00:51:13,450 Freddo. 846 00:51:13,450 --> 00:51:14,830 Altre domande? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3: Come confrontare Laravel ad forse alcune altre opzioni? 849 00:51:19,720 --> 00:51:20,525 ERIC OUYANG: Certo. 850 00:51:20,525 --> 00:51:21,025 Sì. 851 00:51:21,025 --> 00:51:23,430 Così Laravel è-- questo è un grande interrogo 852 00:51:23,430 --> 00:51:26,190 una delle molte opzioni per framework web. 853 00:51:26,190 --> 00:51:31,160 Così Ruby on Rails è uno che è popolare. 854 00:51:31,160 --> 00:51:34,590 Credo che Twitter usato per essere realizzato con Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Penso che abbiano dato accesi. 856 00:51:37,600 --> 00:51:40,780 C'è un altro chiamato FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Così Ruby on Rails usa il linguaggio Ruby e implementa un sacco di roba MVC 858 00:51:46,120 --> 00:51:48,200 che vediamo qui. 859 00:51:48,200 --> 00:51:52,320 FuelPHP è un altro framework PHP. 860 00:51:52,320 --> 00:51:54,490 Django è uno dei miei preferiti. 861 00:51:54,490 --> 00:51:57,010 Si tratta di un framework web per Python. 862 00:51:57,010 --> 00:52:01,270 Così è possibile scrivere la vostra applicazione web in Python. 863 00:52:01,270 --> 00:52:03,760 Quindi c'è un sacco di queste opzioni. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, credo, da e grande è il mio preferito a destra 865 00:52:06,170 --> 00:52:08,232 ora PHP solo perché dei componenti 866 00:52:08,232 --> 00:52:09,440 di cui abbiamo parlato in precedenza. 867 00:52:09,440 --> 00:52:11,910 E 'Composer attivato. 868 00:52:11,910 --> 00:52:15,750 Esso comprende un davvero sistema ORM espressivo. 869 00:52:15,750 --> 00:52:18,800 Inoltre dispone di un template davvero impressionante linguaggio che alcuni degli altri 870 00:52:18,800 --> 00:52:20,630 solo non forniscono. 871 00:52:20,630 --> 00:52:21,400 E migrazioni. 872 00:52:21,400 --> 00:52:23,432 Le migrazioni sono impressionanti pure. 873 00:52:23,432 --> 00:52:24,860 Freddo? 874 00:52:24,860 --> 00:52:25,390 Impressionante. 875 00:52:25,390 --> 00:52:27,560 Beh, grazie mille per guardando questo seminario, 876 00:52:27,560 --> 00:52:30,650 e buona fortuna per i vostri progetti finali. 877 00:52:30,650 --> 00:52:31,616