1 00:00:00,000 --> 00:00:02,538 >> [MUSIC JOC] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Salut, toată lumea. 4 00:00:12,390 --> 00:00:13,580 Bine ai venit. 5 00:00:13,580 --> 00:00:16,860 Acest lucru este Clădire dinamic Web Apps cu Laravel. 6 00:00:16,860 --> 00:00:18,290 Numele meu este Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Sunt un al doilea de studentie studiază științe sociale cu un secundar în informatică, 8 00:00:23,860 --> 00:00:27,290 si locuiesc in Adams Casa de aici la Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Deci Laravel, cel mult miezul ei, este un cadru aplicație web MVC. 10 00:00:33,340 --> 00:00:38,265 Deci place ceea ce avea voi făcut cu CS50 Finanțelor, 11 00:00:38,265 --> 00:00:42,480 Laravel este un cadru care permite te pentru a construi aplicații web dinamice. 12 00:00:42,480 --> 00:00:47,710 Astfel încât să puteți gândi la ea în unele sensuri ca o extensie a tipului de lucruri 13 00:00:47,710 --> 00:00:50,470 ai făcut în CS50 Finanțe, dar un sistem care este 14 00:00:50,470 --> 00:00:55,890 mult mai robust, foarte mult mai elegant, în unele sensuri, 15 00:00:55,890 --> 00:00:57,870 și oferă o mulțime de funcționalitate pentru tine 16 00:00:57,870 --> 00:01:03,060 pentru a construi destul de complex aplicatii web. 17 00:01:03,060 --> 00:01:05,010 Deci, hai sa mergem prin unele dintre caracteristicile cheie, 18 00:01:05,010 --> 00:01:09,550 și apoi vom arunca cu capul într-o exemplu de a construi un blog 19 00:01:09,550 --> 00:01:12,500 aplicație cu Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Astfel, unul dintre primele lucruri pe care diferențiază de tip MVC de muncă 21 00:01:16,700 --> 00:01:22,100 pe care le-am făcut cu CS50 este acesta include un motor ORM. 22 00:01:22,100 --> 00:01:27,410 Deci, ORM standuri pentru obiect cartografiere relațională. 23 00:01:27,410 --> 00:01:31,080 Deci, acest lucru vă permite să construiască un strat de abstractizare 24 00:01:31,080 --> 00:01:35,230 între baza de date și controlere tale. 25 00:01:35,230 --> 00:01:39,150 Deci, spre deosebire de CS50 Finanțe în cazul în care a face direct interogări, 26 00:01:39,150 --> 00:01:44,790 stratul ORM vă permite să abstract că departe și de a crea 27 00:01:44,790 --> 00:01:48,085 modele care sunt mai puternice decât puteți direct cu interogări SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Un alt lucru care este într-adevăr de ajutor este șabloane transmisibile. 30 00:01:53,510 --> 00:01:58,990 Deci, veți observa în CS50 Finanțe, va ajunge rescrierea o multime de lucruri, 31 00:01:58,990 --> 00:02:03,150 în cazul în care ai putea pune potențial refolosirea lucruri, nu ești în stare să. 32 00:02:03,150 --> 00:02:08,539 Deci, aici în Laravel, puteți folosi ceea ce este cunoscut ca motorul șablon lamă 33 00:02:08,539 --> 00:02:10,530 pentru a crea un aspect maestru. 34 00:02:10,530 --> 00:02:15,840 Și de acolo, puteți moșteni astfel încât sub-template-uri poate de fapt 35 00:02:15,840 --> 00:02:21,210 include elemente din cadrul că șablon de bază mai mare. 36 00:02:21,210 --> 00:02:21,810 >> Migrația. 37 00:02:21,810 --> 00:02:29,010 Deci, aceasta este o caracteristici destul de standard la cele mai multe cadre moderne de aplicații web. 38 00:02:29,010 --> 00:02:32,710 Deci, acest lucru vă permite să reprezinte Schimbări schemei bazei de date în cod. 39 00:02:32,710 --> 00:02:39,200 Deci, fără să spun, phpMyAdmin, puteți crea de fapt, aceste migrații 40 00:02:39,200 --> 00:02:44,660 în cazul în care Reprezentati baza de date schemă se schimbă în cod direct. 41 00:02:44,660 --> 00:02:48,070 Și acest lucru vă permite sa-- în special dacă aveți mai multe persoane care lucrează 42 00:02:48,070 --> 00:02:52,650 pe același application-- web urmări aceste schimbări, 43 00:02:52,650 --> 00:02:55,380 spune în GitHub, sau vreun alt depozit. 44 00:02:55,380 --> 00:03:00,880 >> Deci, aceasta este într-adevăr util și atenuează necesitatea 45 00:03:00,880 --> 00:03:04,580 la, să zicem, trece în jurul o mulțime de SQL gropile. 46 00:03:04,580 --> 00:03:07,140 Și, în sfârșit, Compozitor este ceva foarte, foarte util 47 00:03:07,140 --> 00:03:09,840 care vă permite să utilizați alte cod oamenilor să facă lucruri minunate. 48 00:03:09,840 --> 00:03:14,020 Deci, a Laravel structurat ca mai multe pachete compozitor. 49 00:03:14,020 --> 00:03:17,870 Deci, spun că dacă ai vrut să aducă într-un pachet de autentificare 50 00:03:17,870 --> 00:03:23,440 sau dacă ai vrut să aducă în unele fel de script generator sau un admin 51 00:03:23,440 --> 00:03:26,910 interfață, puteți plug and play aceste componente cu compozitorul. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Deci să începem. 54 00:03:31,570 --> 00:03:35,185 Orice întrebări de la tine baieti Înainte de a începe? 55 00:03:35,185 --> 00:03:36,500 Nu întrebări? 56 00:03:36,500 --> 00:03:37,490 Se răcește. 57 00:03:37,490 --> 00:03:39,990 Deci, primul pas este instalarea Composer. 58 00:03:39,990 --> 00:03:43,590 Deci, Compozitor vă permite să gestiona aceste dependențe, 59 00:03:43,590 --> 00:03:47,770 fie că este vorba cadrul Laravel sau vreun alt extensie terță parte. 60 00:03:47,770 --> 00:03:50,400 Prima comandă permite să descărcați Compozitor, 61 00:03:50,400 --> 00:03:55,890 iar cea de a doua comanda va permite sa mutați-l în folderul bin locală 62 00:03:55,890 --> 00:04:01,340 astfel încât să puteți rula Composer direct prin terminalul. 63 00:04:01,340 --> 00:04:05,405 >> După aceea, mergeți mai departe și a crea un nou proiect Laravel. 64 00:04:05,405 --> 00:04:07,280 Vom fapt de gând să utiliza unele cod exemplu 65 00:04:07,280 --> 00:04:10,760 care le-am pus împreună pentru a crea acest blog. 66 00:04:10,760 --> 00:04:14,420 Dar, dacă sunteți incepand de la zero, ar trebui să utilizați această comandă 67 00:04:14,420 --> 00:04:18,160 aici, compozitor crea proiect, laravel slash laravel, și apoi 68 00:04:18,160 --> 00:04:19,940 numele proiectului. 69 00:04:19,940 --> 00:04:22,275 Și care va include toate codul distribuție 70 00:04:22,275 --> 00:04:23,733 pentru a începe un nou proiect Laravel. 71 00:04:23,733 --> 00:04:28,870 Deci, pentru proiectele dvs. CS50 finale, veți Probabil vrea să folosească comanda. 72 00:04:28,870 --> 00:04:31,210 >> Dar vom începe cu asta. 73 00:04:31,210 --> 00:04:34,630 Deci, odată ce ați făcut că, vei obține 74 00:04:34,630 --> 00:04:40,190 un număr destul de mare de fișiere în blog50. 75 00:04:40,190 --> 00:04:43,840 Așa că hai să mergem prin unele dintre aceste componente. 76 00:04:43,840 --> 00:04:49,060 Veți observa în acest traseu director, există un dosar aplicație. 77 00:04:49,060 --> 00:04:52,960 În interiorul folderul app, nu e un cuplu dosare de ajutor. 78 00:04:52,960 --> 00:04:56,330 De notat pentru a începe cu este acest dosar de configurare. 79 00:04:56,330 --> 00:04:59,210 Deci stabilește cum aplicația web este 80 00:04:59,210 --> 00:05:04,350 O să, să zicem, autentificarea persoane sau lucrurile în numerar sau conectarea la baza de date. 81 00:05:04,350 --> 00:05:06,400 >> Și ce este cu adevarat util este faptul că Laravel 82 00:05:06,400 --> 00:05:09,130 vă permite să configurați diferite medii de dezvoltare. 83 00:05:09,130 --> 00:05:12,090 Deci, ceea ce am făcut aici este dacă vom merge în folderul local, 84 00:05:12,090 --> 00:05:14,720 există un fișier database.php. 85 00:05:14,720 --> 00:05:18,320 Și veți observa aici că noi stabili o conexiune MySQL care 86 00:05:18,320 --> 00:05:22,230 permite persoanelor fizice pentru a conecta la serverul MySQL care este 87 00:05:22,230 --> 00:05:24,310 direct pe aparatul CS50. 88 00:05:24,310 --> 00:05:26,980 Și noi conectați la o bază de date că am înființat sunat Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Deci să mergeți mai departe și de fapt rula versiunea de lucru a acestui fapt, 91 00:05:37,085 --> 00:05:39,710 doar pentru a obține un sentiment de ceea ce aplicație pe care le construim 92 00:05:39,710 --> 00:05:41,390 arată. 93 00:05:41,390 --> 00:05:46,150 Deci, am o copie a acest Blog50 finalizat. 94 00:05:46,150 --> 00:05:51,910 Deci, de fapt Laravel a construit într-un server 95 00:05:51,910 --> 00:05:53,910 pe care le puteți rula direct de la linia de comandă. 96 00:05:53,910 --> 00:05:56,900 Deci, aceasta este similar cu PSET înainte atunci când de fapt 97 00:05:56,900 --> 00:06:00,580 construi propriul server din C. Așa că au o construit în așa 98 00:06:00,580 --> 00:06:04,010 pe care le puteți rula aplicațiile Laravel direct de la linia de comandă. 99 00:06:04,010 --> 00:06:11,650 >> Deci, dacă facem php artizan servi, acest va lansa un server de dezvoltare 100 00:06:11,650 --> 00:06:13,880 pe portul 8000. 101 00:06:13,880 --> 00:06:18,250 Deci, dacă mergem la local host 8000, veți observa că, hei. 102 00:06:18,250 --> 00:06:20,800 Avem blog sus și să fie difuzate nostru. 103 00:06:20,800 --> 00:06:25,090 Deci Laravel aici este generatoare de prima pagină a blog-ul nostru. 104 00:06:25,090 --> 00:06:26,350 Aplicație foarte simplu. 105 00:06:26,350 --> 00:06:28,610 Dar există un cuplu caracteristici foarte puturos 106 00:06:28,610 --> 00:06:31,346 că acesta oferă sub capota. 107 00:06:31,346 --> 00:06:33,680 >> Astfel, cererea de blog de simplă. 108 00:06:33,680 --> 00:06:36,430 Dacă am vrut să creeze un post, putem să faceți clic pe acel buton. 109 00:06:36,430 --> 00:06:40,470 Putem spune, "Hei, toată lumea. 110 00:06:40,470 --> 00:06:44,530 Aceasta este o foarte distractiv seminar ", de exemplu. 111 00:06:44,530 --> 00:06:46,560 Și scrie ceva aici. 112 00:06:46,560 --> 00:06:48,180 Text aici. 113 00:06:48,180 --> 00:06:51,327 Dacă ne faceți clic pe Submit, veți observă că noul nostru blog 114 00:06:51,327 --> 00:06:53,410 postare a fost adăugat la prima pagină a blog-ul. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Dacă ne întoarcem aici, veți observa că au existat unele comentarii deja 117 00:06:59,970 --> 00:07:01,160 pe blog. 118 00:07:01,160 --> 00:07:03,630 Deci, dacă ne-am defila în jos, veți observați că Jonathan Tan spune 119 00:07:03,630 --> 00:07:08,020 că el a fost foarte intrigat de acest post. 120 00:07:08,020 --> 00:07:11,570 >> Deci, vom intra în modul obiect cartografiere relațională permite 121 00:07:11,570 --> 00:07:16,668 să faci aceste relații în un mod destul de perfectă, de asemenea. 122 00:07:16,668 --> 00:07:17,660 Se răcește. 123 00:07:17,660 --> 00:07:20,290 Orice întrebări despre funcționa de ceea ce vom construi? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Se răcește. 126 00:07:23,840 --> 00:07:28,170 Așa că haideți să începem cu efectiv crearea tabelele bazei de date. 127 00:07:28,170 --> 00:07:33,190 >> Astfel, amintim că în CS50 Finanțe, tu pune împreună un tabel pentru utilizatori 128 00:07:33,190 --> 00:07:37,100 precum și pentru stocurile din portofoliul dumneavoastră. 129 00:07:37,100 --> 00:07:41,040 Deci, așa cum am menționat mai devreme, ceea ce vom folosi în Laravel 130 00:07:41,040 --> 00:07:43,090 este ceva cunoscut sub numele de migrații. 131 00:07:43,090 --> 00:07:48,570 Deci, dacă ne întoarcem la cod de distribuție aici, 132 00:07:48,570 --> 00:07:51,790 Prima comandă care este de ajutor care Laravel va ofera 133 00:07:51,790 --> 00:07:54,240 este această comandă migreze. 134 00:07:54,240 --> 00:07:59,220 Deci, putem face php migreze artizan: face. 135 00:07:59,220 --> 00:08:01,760 Deci, acest lucru ne permite de a crea o migrare. 136 00:08:01,760 --> 00:08:03,710 >> Și apoi vom dori pentru a crea o migrare 137 00:08:03,710 --> 00:08:07,050 numit create_posts_table, care se întâmplă 138 00:08:07,050 --> 00:08:11,521 a fi în cazul în care vom fi depozitarea posturi pe blog noastre. 139 00:08:11,521 --> 00:08:14,690 Și veți observa aici că rulează prin intermediul unor cod care de fapt 140 00:08:14,690 --> 00:08:17,580 generează un fișier cu o ștampilă de timp pe ea. 141 00:08:17,580 --> 00:08:22,260 Deci, dacă mergem și privi la baze de date, vom observa sub Migrații 142 00:08:22,260 --> 00:08:24,830 că este creat un fișier gol pentru noi care 143 00:08:24,830 --> 00:08:30,100 are cod șabloane cu numele că am specificat, crea posturi de masă. 144 00:08:30,100 --> 00:08:31,670 >> Și are două funcții în ea. 145 00:08:31,670 --> 00:08:40,539 Up este ceea ce ne dorim să curgă din momentul în migrația este aplicat la baza de date. 146 00:08:40,539 --> 00:08:46,380 Și jos este ceea ce vom face atunci când vrem să inverseze un migrației. 147 00:08:46,380 --> 00:08:49,890 Deci, aici să începem cu scrierea această migrare. 148 00:08:49,890 --> 00:08:55,480 Deci, există o clasă de ajutor în Laravel numit Schema. 149 00:08:55,480 --> 00:08:57,910 >> Deci, vom rula Schema :: crea. 150 00:08:57,910 --> 00:09:01,080 Și vom crea un tabel numit posturi. 151 00:09:01,080 --> 00:09:05,980 Și aici vom aplica acest lucru, folosind o funcție. 152 00:09:05,980 --> 00:09:11,010 Și în aici, vom efectiv precizează conținutul masa noastră. 153 00:09:11,010 --> 00:09:14,860 Vom crea un ID, care este auto-incrementare. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> În plus, vom merge pentru a crea un domeniu care 156 00:09:24,350 --> 00:09:27,060 reprezintă titlul post blog-ul nostru. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Vom asemenea, va crea un câmp pentru stocarea textul posta blog-ul nostru. 159 00:09:36,950 --> 00:09:40,600 Și, în sfârșit, vom pentru a stoca unele marcajele de timp 160 00:09:40,600 --> 00:09:44,690 pentru care a fost creat postul nostru și când a fost actualizat. 161 00:09:44,690 --> 00:09:46,240 Și pentru în jos, e destul de simplu. 162 00:09:46,240 --> 00:09:53,974 Tot ce vrem să facem este derulează tabelul pe care le-am creat. 163 00:09:53,974 --> 00:09:54,930 >> Marea. 164 00:09:54,930 --> 00:09:55,850 Orice întrebări? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Deci, acum, dacă vom merge mai departe si-- de fapt, gazdă locală, 167 00:10:07,110 --> 00:10:09,640 lasă-mă să ștergeți ceea ce am avut mai devreme. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Du-te la Baze de date. 170 00:10:15,190 --> 00:10:17,640 Am de gând să-l ștergeți ceea ce am avut mai devreme. 171 00:10:17,640 --> 00:10:22,870 Aruncă acest lucru și a crea o nouă bază de date Blog50. 172 00:10:22,870 --> 00:10:24,930 Deci, acum ce magice parte este aici ca noi 173 00:10:24,930 --> 00:10:28,760 pot aplica aceste migrații direct la baza de date folosind linia de comandă 174 00:10:28,760 --> 00:10:29,290 instrument. 175 00:10:29,290 --> 00:10:35,100 Deci, dacă facem php artizan migra, veți observa că, hei. 176 00:10:35,100 --> 00:10:38,320 Este creat tabelul de migrație, care vom arunca o privire la într-un pic, 177 00:10:38,320 --> 00:10:40,540 și se aplică această primă migrare. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Deci, ne uităm la Blog50, veți observa că este creat două mese pentru noi. 180 00:10:48,920 --> 00:10:50,300 În primul rând este acest tabel migrații. 181 00:10:50,300 --> 00:10:54,130 Deci, dacă am căuta acest lucru, veți observa că acest tabel este destul de simplă. 182 00:10:54,130 --> 00:10:55,490 Se tocmai a spus că, hei. 183 00:10:55,490 --> 00:10:58,960 Am aplicat această migrare. 184 00:10:58,960 --> 00:11:01,470 Ne întoarcem si uita-te la posturi. 185 00:11:01,470 --> 00:11:05,720 Veți observa că structura este exact ceea ce ne-ar fi cerut. 186 00:11:05,720 --> 00:11:07,350 Avem un ID de auto-incrementare. 187 00:11:07,350 --> 00:11:10,450 Avem un șir de stocare titlul, și un câmp de text 188 00:11:10,450 --> 00:11:11,450 pentru stocarea conținutului. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Marea. 191 00:11:14,706 --> 00:11:15,560 Se răcește. 192 00:11:15,560 --> 00:11:21,626 Orice întrebări despre migrații locul de muncă, cum le putem aplica? 193 00:11:21,626 --> 00:11:22,126 Nu? 194 00:11:22,126 --> 00:11:23,600 Se răcește. 195 00:11:23,600 --> 00:11:26,630 Deci, acum vom merge mai departe și de fapt a crea modelul. 196 00:11:26,630 --> 00:11:33,100 Așa că doriți să creați un model de posturi care stochează o abstracție a bazei de date. 197 00:11:33,100 --> 00:11:41,040 Deci, mai degrabă decât a face interogări MySQL direct, vom crea. 198 00:11:41,040 --> 00:11:45,840 Deci, avem de a crea o dosar aici numite modele. 199 00:11:45,840 --> 00:11:48,905 Și în interiorul aici, vom a crea un fișier numit post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> În interiorul acestui fișier PHP, vom crea 202 00:11:54,550 --> 00:12:00,590 un post de clasă care se extinde elocvent. 203 00:12:00,590 --> 00:12:08,950 Elocvent este numele ORM motor care Laravel oferă. 204 00:12:08,950 --> 00:12:12,799 Și aici, ne-am putea aștepta ca de fapt nevoie pentru a scrie un cod. 205 00:12:12,799 --> 00:12:14,840 Vom scrie ceva Funcții helper mai târziu. 206 00:12:14,840 --> 00:12:19,420 Dar din centru, acest lucru va deja recunoaște ceea ce este în baza de date 207 00:12:19,420 --> 00:12:24,770 și putem accesa, spune, textul de nostru blog sau titlul, 208 00:12:24,770 --> 00:12:29,230 și de a crea lucruri direct cu destul de mult nici un fel de cod. 209 00:12:29,230 --> 00:12:31,110 >> Deci, asta e una din componentele magice. 210 00:12:31,110 --> 00:12:34,980 Și vânt dată această clasă este mai cu drepturi depline, 211 00:12:34,980 --> 00:12:40,480 vom include informații despre ceea ce este legată de, așa comentariile. 212 00:12:40,480 --> 00:12:42,310 De asemenea, creează o funcție astfel încât să putem efectiv 213 00:12:42,310 --> 00:12:46,340 obține direct URL-ul de o pagină blog. 214 00:12:46,340 --> 00:12:46,840 Se răcește. 215 00:12:46,840 --> 00:12:47,881 Orice întrebări despre asta? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Nu. 218 00:12:51,832 --> 00:12:54,100 Se răcește. 219 00:12:54,100 --> 00:12:57,860 >> Deci, acum, odată ce vom avea modelul nostru, ne-am doriți să creați un controler care este 220 00:12:57,860 --> 00:13:02,340 capabil să interacționeze cu aceste modele, și, ulterior, în baza de date. 221 00:13:02,340 --> 00:13:05,540 Deci, dacă ne uităm la BlogController, veți 222 00:13:05,540 --> 00:13:08,490 observați că nu e mult aici chiar acum. 223 00:13:08,490 --> 00:13:13,220 Tot există un sistem de index care generează pagina de start, 224 00:13:13,220 --> 00:13:18,220 dar fără nimic acolo pentru a afișa încă. 225 00:13:18,220 --> 00:13:20,560 >> Deci, prima funcție că vom crea 226 00:13:20,560 --> 00:13:25,790 este una care ne permite pentru a crea un post pe blog. 227 00:13:25,790 --> 00:13:30,540 Deci, vom declara o Noua funcție numită newPost. 228 00:13:30,540 --> 00:13:36,430 Și în interiorul aici pur și simplu, mergem pentru a seta structura aceasta pagina 229 00:13:36,430 --> 00:13:41,850 a fi o versiune face, dacă vă amintiți de la CS50, 230 00:13:41,850 --> 00:13:48,020 din acest șablon numit blog.new, care vom crea într-un pic. 231 00:13:48,020 --> 00:13:53,170 >> Veți observa aici line șase că am specificat această variabilă, aspect. 232 00:13:53,170 --> 00:13:55,820 Și dacă ne uităm la dosarul Vizualizari, 233 00:13:55,820 --> 00:14:01,640 există un dosar Layouts, care include un fișier HTML foarte extinsă. 234 00:14:01,640 --> 00:14:04,680 Și nota, veți observa că avem această recipient 235 00:14:04,680 --> 00:14:06,800 aici că randamentele conținut. 236 00:14:06,800 --> 00:14:09,460 Deci, în interiorul șablonul nostru ceea ce vom face 237 00:14:09,460 --> 00:14:16,180 este a crea ceea ce va fi substituit în mod direct în acest aspect. 238 00:14:16,180 --> 00:14:20,060 >> Așa că am spus că vrem să face un șablon numit blog.new. 239 00:14:20,060 --> 00:14:23,790 Dar interiorul blog, nu e Nu încă acest șablon nou. 240 00:14:23,790 --> 00:14:26,910 Deci, vom crea o fișier numit new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Acest lucru spune Laravel că acest fișier PHP ar trebui 242 00:14:29,860 --> 00:14:31,720 fi redate cu motor șablon lamă. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Deci, aceasta este o destul de fișier simplu. 245 00:14:42,630 --> 00:14:46,690 Va fi forma prin care vom adăuga de fapt într-o postare pe blog. 246 00:14:46,690 --> 00:14:49,220 >> Deci, magia aici de la moștenire este că, hei. 247 00:14:49,220 --> 00:14:52,950 Vrem să se precizeze că secțiune, secțiunea conținut 248 00:14:52,950 --> 00:14:56,640 aici, care este delimitat desection șistop. 249 00:14:56,640 --> 00:15:02,260 Deci, ce este în între aici se va se înlocuiește în aspectul principal. 250 00:15:02,260 --> 00:15:07,000 Și aici ceea ce vrem să facem este foarte simplu crea un nou fișier HTML. 251 00:15:07,000 --> 00:15:08,690 Să adăugați un titlu rapid. 252 00:15:08,690 --> 00:15:09,600 Adaugă o postare pe blog. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 Și în aceasta, suntem va crea un formular. 255 00:15:15,390 --> 00:15:19,197 >> Acest formular va avea o acțiune. 256 00:15:19,197 --> 00:15:21,780 Și acest lucru va fi ceva pe care le înlocui în mai târziu, 257 00:15:21,780 --> 00:15:24,200 și vom vedea cum rutare se potrivește în aici. 258 00:15:24,200 --> 00:15:33,600 Dar suntem doar de gând să se definească pentru acum că această merge la un URL cu traseul 259 00:15:33,600 --> 00:15:34,860 de la createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 Și apoi acest lucru se întâmplă a avea metode posta. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 În aici, vom de a avea două domenii. 264 00:15:47,590 --> 00:15:49,170 Clasă Div = "formă-grup". 265 00:15:49,170 --> 00:15:55,806 >> Suntem folosind biblioteca Bootstrap CSS gratie oferite de Twitter. 266 00:15:55,806 --> 00:15:57,720 Deci, vom crea două dintre acestea. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Deci, această primă intrare este Va fi titlul. 269 00:16:05,970 --> 00:16:08,437 Numele Deci intrare = "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 Tipul = "text". 273 00:16:14,425 --> 00:16:16,050 Am de gând să adăugați un substituent = "Titlul". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> Și apoi al doilea este Va fi o zonă de text. 276 00:16:26,140 --> 00:16:27,827 Nume = "conținut". 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 Și înlocuitor = "Scrie aici". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Acolo mergem. 282 00:16:43,480 --> 00:16:46,760 În cele din urmă, vom adăuga un buton rapid prezenta. 283 00:16:46,760 --> 00:16:50,370 Tipul = "submit" class = "BTN btn-primar". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Deci, acestea sunt toate caracteristici ale Bootstrap așa 286 00:16:55,340 --> 00:16:58,510 că acest lucru poate fi pus într-un mod care este 287 00:16:58,510 --> 00:17:03,730 pradă pentru utilizator, mai degrabă decât HTML gol. 288 00:17:03,730 --> 00:17:06,250 >> Deci, ne-am definit regulatorul aici. 289 00:17:06,250 --> 00:17:08,930 Am definit o vedere foarte simplu. 290 00:17:08,930 --> 00:17:12,339 Dar ceea ce lipsește este țesutul conjunctiv. 291 00:17:12,339 --> 00:17:15,420 Deci, la acest moment, Laravel nu are nici o idee cum 292 00:17:15,420 --> 00:17:18,312 vom efectiv accesa acest controller. 293 00:17:18,312 --> 00:17:20,270 Deci, acest lucru este definit într-un fișier numit routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 Și acum, avem o rută. 296 00:17:24,310 --> 00:17:29,060 Care este atunci când vom merge la cale acasă pentru acest site, 297 00:17:29,060 --> 00:17:33,140 se va face controlerul index. 298 00:17:33,140 --> 00:17:38,880 Deci, aici avem nevoie facem este să pună în aplicare un nou traseu pentru noi, pentru a crea un post. 299 00:17:38,880 --> 00:17:41,910 >> Deci, vom folosi această metodă obține, care specifică 300 00:17:41,910 --> 00:17:48,650 că, atunci când un utilizator încearcă să obține acest page-- specific 301 00:17:48,650 --> 00:17:52,850 in bara slash nou page-- ceea ce vom face 302 00:17:52,850 --> 00:18:02,060 este utiliza controlerul numit BlogController mesaj nou. 303 00:18:02,060 --> 00:18:03,460 Cel care tocmai am creat. 304 00:18:03,460 --> 00:18:08,090 Și apoi mergem să-l alias ca newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Vom crea un alt Funcția într-un pic. 307 00:18:19,850 --> 00:18:23,520 Dar ce e aici, sub tasta "ca" este ceea ce 308 00:18:23,520 --> 00:18:28,195 putem înlocui în șabloanele noastre blade. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Deci, pentru moment, să de fapt spune, de asemenea traseu. 311 00:18:36,230 --> 00:18:38,380 Deci, vom merge, de asemenea, pentru a crea un controler 312 00:18:38,380 --> 00:18:41,020 astfel încât să putem crea aceste posturi. 313 00:18:41,020 --> 00:18:46,940 Deci, dacă un utilizator de posturi la postul pagina slash nou, ceea ce vom face 314 00:18:46,940 --> 00:18:51,350 este foloseste un controller care vom crea în scurt timp 315 00:18:51,350 --> 00:18:56,160 numit BlogController la createPost. 316 00:18:56,160 --> 00:19:01,929 Și vom alias aceasta cu drept createPost. 317 00:19:01,929 --> 00:19:03,380 Se răcește. 318 00:19:03,380 --> 00:19:05,811 >> Orice întrebări? 319 00:19:05,811 --> 00:19:06,310 Se răcește. 320 00:19:06,310 --> 00:19:09,790 Deci, haideți să ruleze ce avem până acum. 321 00:19:09,790 --> 00:19:16,930 Deci, dacă facem php artizan servi, vom vedea o mulțime de erori. 322 00:19:16,930 --> 00:19:20,385 Deci, se pare ca avem o eroare de sintaxă pe rute linia 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Lipsește un punct și virgulă. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Deci, dacă mergem la 8.000, veți vedea nimic încă aici. 327 00:19:32,870 --> 00:19:34,740 Deci, aceasta este pagina de pornire implicită. 328 00:19:34,740 --> 00:19:37,730 >> Dar dacă vom merge pentru a posta reduce nou, hei. 329 00:19:37,730 --> 00:19:40,425 Va fi forma pe care tocmai am creat. 330 00:19:40,425 --> 00:19:42,550 Chiar acum, noi nu avem implementat funcționalitatea 331 00:19:42,550 --> 00:19:44,060 de când am apăsați butonul Submit. 332 00:19:44,060 --> 00:19:47,110 Deci, dacă facem click pe Submit buton, se va executa o eroare. 333 00:19:47,110 --> 00:19:49,840 Dar vom cod care chiar acum, exact ceea ce ne-am 334 00:19:49,840 --> 00:19:54,840 vrea să facă atunci când un utilizator susține acest formular. 335 00:19:54,840 --> 00:19:55,770 >> Așa că hai să facem asta. 336 00:19:55,770 --> 00:19:57,380 Du-te înapoi la dosar Controllers. 337 00:19:57,380 --> 00:20:00,180 Ceea ce vom face este pune în aplicare această nouă funcție 338 00:20:00,180 --> 00:20:04,360 care ne permite să creați un post. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Constatarea nouă funcție. 341 00:20:08,990 --> 00:20:11,527 Funcția createPost public. 342 00:20:11,527 --> 00:20:14,610 Și această funcție va fi un pic mai sofisticat decât ceea ce 343 00:20:14,610 --> 00:20:15,559 am avut înainte. 344 00:20:15,559 --> 00:20:18,350 Dar veți vedea aici că nu suntem O să scrie de fapt orice SQL. 345 00:20:18,350 --> 00:20:20,980 ORM, elocvent ORM, va permite 346 00:20:20,980 --> 00:20:26,400 ne să facem acest lucru în unele modalități un mod mai elegant. 347 00:20:26,400 --> 00:20:29,140 >> Deci, vom crea un nou post. 348 00:20:29,140 --> 00:20:34,120 Și aici suntem instantierea un nou obiect 349 00:20:34,120 --> 00:20:38,080 de la modelul pe care tocmai am a creat, modelul post. 350 00:20:38,080 --> 00:20:44,450 Și ce vom face este setat titlu atribut de acest lucru, folosind ceva 351 00:20:44,450 --> 00:20:47,380 pe care le primesc de la server. 352 00:20:47,380 --> 00:20:52,060 Deci, acest lucru este similar cu ceea ce am avut înainte în CS50 Finanțe 353 00:20:52,060 --> 00:20:57,750 în cazul în care ne-ar face, folosind Super Global Publica cautati titlu. 354 00:20:57,750 --> 00:21:01,600 >> Deci Laravel prevede unele salubritate și fleacuri folosind această funcție ajutor. 355 00:21:01,600 --> 00:21:07,610 Așa că ar prefera să folosească acest loc din acest formular crud foarte extinsă de PHP. 356 00:21:07,610 --> 00:21:17,430 Și apoi ce vom face este setat conținutul de ea pentru a obține de intrare conținut. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Vom fapt de gând să-și încheie acest lucru într-o funcție de ajutor 359 00:21:22,720 --> 00:21:31,820 că PHP oferă numit nl2br, care apoi noi linii, NLS, în lat, pauze, 360 00:21:31,820 --> 00:21:35,822 astfel încât să putem avea de fapt diferite paragrafe din interiorul acestuia. 361 00:21:35,822 --> 00:21:38,030 Și, în sfârșit ceea ce vom să faceți este să salveze acest post. 362 00:21:38,030 --> 00:21:41,686 Așa că am apela funcția salva pe acest model. 363 00:21:41,686 --> 00:21:43,800 Vom salva postul. 364 00:21:43,800 --> 00:21:49,970 Și, în sfârșit ceea ce am de gând să faci este redirecționa utilizatorul specific 365 00:21:49,970 --> 00:21:55,060 la traseul pe care am de gând să crea în scurt timp, alias de viewPost. 366 00:21:55,060 --> 00:22:00,435 Și vom trece în argumentele id, fiind id-ul acestei postare nouă. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Marea. 369 00:22:05,640 --> 00:22:09,090 Deci, acum, dacă vom merge de fapt, și a alerga acest lucru. 370 00:22:09,090 --> 00:22:11,370 Vom adăuga un nou post. 371 00:22:11,370 --> 00:22:15,930 Să spunem că acest lucru este seminar 50. 372 00:22:15,930 --> 00:22:17,620 Și spune, sigur. 373 00:22:17,620 --> 00:22:18,240 ASDL. 374 00:22:18,240 --> 00:22:18,740 Tot Ceea Ce. 375 00:22:18,740 --> 00:22:20,320 Un fel de conținut. 376 00:22:20,320 --> 00:22:21,180 Și Submit. 377 00:22:21,180 --> 00:22:23,850 Și vom observa că, hei. rute nu este definit. 378 00:22:23,850 --> 00:22:32,340 Dar dacă ne uităm la phpMyAdmin și uita-te pentru chiar funcția noastră 379 00:22:32,340 --> 00:22:34,370 a făcut nimic. 380 00:22:34,370 --> 00:22:36,670 Uită-te la posturi Blog50. 381 00:22:36,670 --> 00:22:37,720 Vom observa că, hei. 382 00:22:37,720 --> 00:22:43,530 De fapt, ne-am creat doar că blog posta cu marcajele de timp după cum se specifică. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Acum să ne întoarcem și să creeze efectiv această altă funcție în controlor nostru, 385 00:22:51,630 --> 00:22:54,790 în special controlerul viewPost. 386 00:22:54,790 --> 00:23:00,290 Funcția viewPost Deci publice. 387 00:23:00,290 --> 00:23:04,070 Deci, aici ce vom face, în schimb de a avea paranteze goale, 388 00:23:04,070 --> 00:23:08,800 vom dori să treacă în ID-ul de postul pe care le creăm. 389 00:23:08,800 --> 00:23:12,800 Și de aici ceea ce am de gând să faci este de fapt interoga baza de date pentru el. 390 00:23:12,800 --> 00:23:15,140 >> Deci, dacă facem posta, există o funcție numită 391 00:23:15,140 --> 00:23:18,860 Găsiți care ne permite sa-l interoga ID. 392 00:23:18,860 --> 00:23:22,110 Mai exact, de fapt, vom utilizați o versiune alternativă a acestui numite 393 00:23:22,110 --> 00:23:27,880 Găsiți sau nu, ceea ce ne permite să renunțe din această funcție, 394 00:23:27,880 --> 00:23:34,700 arunca o excepție dacă ID-ul trecem în nu există. 395 00:23:34,700 --> 00:23:37,500 Și apoi vom face ceva similar cu ceea ce am făcut mai devreme 396 00:23:37,500 --> 00:23:41,100 în cazul în care ne-am stabilit conținutul din aceasta pagina pentru a 397 00:23:41,100 --> 00:23:47,950 versiunea prestate de aceasta noua viziune care vom crea, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> Și vom trece în it-- la fel ca în CS50 face 399 00:23:51,030 --> 00:23:56,645 function-- un dicționar de variabile. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Cheile de acest tablou asociativ deveni variabile în șablonul. 402 00:24:04,620 --> 00:24:06,830 Deci, vom face mesaj Publică. 403 00:24:06,830 --> 00:24:12,474 Deci, treci indirect in bara care ne-am întrebat din baza de date. . 404 00:24:12,474 --> 00:24:14,390 Acum, ce vom faceți este să creați acest punct de vedere 405 00:24:14,390 --> 00:24:17,560 astfel încât să putem vedea de fapt posturile pe care le-am construit blog. 406 00:24:17,560 --> 00:24:20,280 >> Deci, vom crea o fișier numit view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Deci, în interiorul acestui model, ceea ce vom face 409 00:24:29,640 --> 00:24:39,700 este pus împreună o pagină simplu care ne permite pentru a afișa conținutul. 410 00:24:39,700 --> 00:24:44,280 Deci, ce facem secțiune, asta e înainte conținut. 411 00:24:44,280 --> 00:24:46,800 Stop. 412 00:24:46,800 --> 00:24:53,920 Și ce vom să facă în aici este 413 00:24:53,920 --> 00:24:56,930 scrie unele HTML pentru a afișa această pagină. 414 00:24:56,930 --> 00:25:03,590 >> Așa că o să-l încheie cu o fantezie element nou HTML5 numit articolul. 415 00:25:03,590 --> 00:25:05,790 Și aici, mergem pentru a avea un antet în care 416 00:25:05,790 --> 00:25:12,190 vom avea pur și simplu o h1, care include titlul poștă. 417 00:25:12,190 --> 00:25:17,120 Deci, aici, dacă ne uităm la acest dublu notație acoladă, 418 00:25:17,120 --> 00:25:21,690 acest lucru va face, în esență, PHP ecou după titlu. 419 00:25:21,690 --> 00:25:25,630 Deci, este o prescurtare de ajutor care Laravel ne ofera. 420 00:25:25,630 --> 00:25:31,070 Deci, vom utiliza această notație în schimb. 421 00:25:31,070 --> 00:25:40,220 >> Și aici, vom, de asemenea, imprima conținutul ea. 422 00:25:40,220 --> 00:25:43,480 Și aici, mergem pentru a face conținutul posta. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 Și în jos în partea de jos ceea ce suntem O să faceți este să creați un subsol. 425 00:25:50,660 --> 00:25:57,690 Iar în subsol, vom prima afișare când acest lucru a fost postat. 426 00:25:57,690 --> 00:26:01,320 Deci, acest lucru a fost postat la, creat la. 427 00:26:01,320 --> 00:26:07,996 >> Și Laravel foloseste un foarte frumos bibliotecă data numit Carbon. 428 00:26:07,996 --> 00:26:11,120 Deci, putem face de fapt ceva numit difforHumans, care ați văzut mai devreme. 429 00:26:11,120 --> 00:26:14,360 Când ne-am postat. ea va spune, cum ar fi, acum cinci secunde. 430 00:26:14,360 --> 00:26:16,860 Deci, aceasta este o foarte frumos funcționalitatea de Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 Și, în sfârșit, vom pentru a închide acest subsol. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Deci, acum, dacă ne întoarcem la Home Page mergem 435 00:26:31,450 --> 00:26:34,490 pentru a vedea nimic încă aici, deoarece nu am codat sus a paginii de start. 436 00:26:34,490 --> 00:26:40,962 Dar dacă vom merge pentru a posta un slash, vom vedea o excepție. 437 00:26:40,962 --> 00:26:42,670 Stie cineva de ce vom vedea o excepție? 438 00:26:42,670 --> 00:26:44,516 Ce ne lipsește? 439 00:26:44,516 --> 00:26:45,290 Orice idei? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Deci, ce ne-am face mai devreme pentru noi de fapt 442 00:26:49,790 --> 00:26:52,285 pentru a defini cum ajungem să special controlere? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> SPEAKER 1: Traseul? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Da. 446 00:26:56,519 --> 00:26:58,070 Deci, tot trebuie să definească traseul. 447 00:26:58,070 --> 00:26:59,794 Deci ne întoarcem aici pentru a routes.php. 448 00:26:59,794 --> 00:27:01,710 Veți observa că ne-am nu au de fapt definit 449 00:27:01,710 --> 00:27:05,010 cum vom obține la acest controller. 450 00:27:05,010 --> 00:27:06,780 Deci, acum vom defini acest traseu. 451 00:27:06,780 --> 00:27:09,280 E destul de simplu, similar cu ceea ce am făcut mai devreme. 452 00:27:09,280 --> 00:27:13,910 Dar ce vom observa aici este că vom avea un înlocuitor. 453 00:27:13,910 --> 00:27:18,730 >> Deci, dacă facem route.get după slash ID. 454 00:27:18,730 --> 00:27:24,290 Deci, ID-ul acum este ceea ce se întâmplă la fi trecut în controlerul. 455 00:27:24,290 --> 00:27:27,820 Acest lucru se întâmplă de utilizat controlor că ne-am 456 00:27:27,820 --> 00:27:33,560 a creat, BlogController la viewPost. 457 00:27:33,560 --> 00:27:36,420 Și am de gând să alias acest lucru ca viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Marea. 460 00:27:47,490 --> 00:27:49,470 Deci, acum vom crea această rută. 461 00:27:49,470 --> 00:27:52,100 >> Deci, acum, dacă vom merge aici și reîmprospăta această pagină, 462 00:27:52,100 --> 00:27:54,410 noi de fapt avem noi postare pe blog. 463 00:27:54,410 --> 00:27:57,710 Deci, asta este ceea ce am creat mai devreme. 464 00:27:57,710 --> 00:28:01,320 Foarte pagina simplu, dar afișează blog pe care tocmai am creat. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Se răcește. 467 00:28:04,760 --> 00:28:08,880 Și dacă am merge de fapt, prin întregul proces de creare a unui nou post pe blog, 468 00:28:08,880 --> 00:28:11,700 vom observa că tot redirecționează în mod corespunzător. 469 00:28:11,700 --> 00:28:12,950 Dacă spun, "Bună. 470 00:28:12,950 --> 00:28:15,710 Sunt Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Spune: "Acesta este meu post pe blog." 472 00:28:18,550 --> 00:28:22,830 Și îl transmite, aceasta va crea acest nou post pe blog cu ID-ul 2, 473 00:28:22,830 --> 00:28:28,920 care trepte, de la ceea ce am avut anterior și îl afișează corespunzător. 474 00:28:28,920 --> 00:28:30,760 Minunat. 475 00:28:30,760 --> 00:28:32,930 >> Orice întrebări? 476 00:28:32,930 --> 00:28:33,430 Da? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2: Are mâner Laravel igienizare și totul pentru tine? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Da. 479 00:28:37,245 --> 00:28:42,990 Așa că atunci când am văzut mai devreme, atunci când am facut de intrare colon colon ajunge, 480 00:28:42,990 --> 00:28:47,720 că sanitates orice SQL preparate injectabile și fleacuri 481 00:28:47,720 --> 00:28:51,660 că am putea dori pentru a efectua dacă suntem un utilizator rău intenționat a site-ului. 482 00:28:51,660 --> 00:28:54,115 Deci Laravel ocupă mult din care în spatele scenei. 483 00:28:54,115 --> 00:28:57,030 Bună întrebare. 484 00:28:57,030 --> 00:29:00,390 >> Deci, haideți să aruncăm o privire la pagina de start. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Deci, dacă mergem mai întâi înapoi la controler pentru pagina de pornire, 487 00:29:06,790 --> 00:29:08,740 veți observa că aceasta nu face mult aici. 488 00:29:08,740 --> 00:29:11,620 Veți observa că nu suntem asociate în acest controller 489 00:29:11,620 --> 00:29:13,830 nimic deosebit de util. 490 00:29:13,830 --> 00:29:16,660 E doar acest fișier index. 491 00:29:16,660 --> 00:29:18,770 >> Așa că haideți să treacă în aceasta ceva util. 492 00:29:18,770 --> 00:29:21,450 Și în mod special, suntem O să treacă în posturi. 493 00:29:21,450 --> 00:29:28,740 Și Laravel ne permite pentru a face poștă tuturor, care 494 00:29:28,740 --> 00:29:30,625 ne va permite pentru a obține toate posturile. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Acum, dacă ne întoarcem la index.php, veți vedea, hei. 497 00:29:35,730 --> 00:29:37,060 Nimic încă aici. 498 00:29:37,060 --> 00:29:41,290 Dar ceea ce vrem să facem aici este, de fapt repeta prin, 499 00:29:41,290 --> 00:29:46,420 face o buclă foreach pe posturile care ne permite să imprimați posturi. 500 00:29:46,420 --> 00:29:53,180 >> Posturi Deci foreach fi poștă, ceea ce vrem să facem 501 00:29:53,180 --> 00:29:57,252 se imprima conținutul de la postul de pe blog. 502 00:29:57,252 --> 00:30:00,210 Dar un lucru pe care veți observa este că noi de fapt scris cele mai multe din acest cod 503 00:30:00,210 --> 00:30:01,370 deja, în view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Deci, ce vom face de fapt este utilizați o caracteristică frumos util Blade 506 00:30:08,640 --> 00:30:11,300 și factor acest cod comun. 507 00:30:11,300 --> 00:30:12,570 Așa că du-te aici. 508 00:30:12,570 --> 00:30:16,210 >> Vom lua acest conținut chiar aici, și ce vom face 509 00:30:16,210 --> 00:30:18,170 este crea un nou dosar. 510 00:30:18,170 --> 00:30:20,364 Să-i spunem parțiale. 511 00:30:20,364 --> 00:30:22,530 Și aici, mergem pentru a crea un post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Deci, aici, ne-am luat din drum în care ne-o dorim pentru a afișa aceste posturi. 514 00:30:33,100 --> 00:30:38,690 Și aici ce vom face în loc de având în fapt, că HTML direct, 515 00:30:38,690 --> 00:30:41,530 vom utiliza această directivă, numita includ blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> Și ce vom face aici este trece în postul a paginii. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Deci, acum, dacă ne întoarcem aici, vom observați că funcționalitatea este încă 520 00:31:01,050 --> 00:31:01,550 aceeași. 521 00:31:01,550 --> 00:31:05,140 Dar acum avem această luat în cod, aceasta HTML. 522 00:31:05,140 --> 00:31:07,070 Deci, putem folosi în Index. 523 00:31:07,070 --> 00:31:09,090 Deci, aici, acest lucru este foarte simplu. 524 00:31:09,090 --> 00:31:17,870 Tot ce facem este să includă blog.partials.post și matrice. 525 00:31:17,870 --> 00:31:20,845 Și undeva la înainte, să facem mesaj Publică. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Deci, acum, dacă ne întoarcem la Pagina de start, vom vedea că, hei. 528 00:31:28,182 --> 00:31:30,515 Avem o listă a tuturor posturi pe blog că le-am avut înainte. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Am putea dori să adăugați câteva "dacă" Condiții și condițiile "altceva" 531 00:31:37,700 --> 00:31:39,979 astfel încât, dacă nu avem nimic pe blog, 532 00:31:39,979 --> 00:31:41,520 vrem să afișeze ceva util. 533 00:31:41,520 --> 00:31:42,570 Cum ar fi, hei. 534 00:31:42,570 --> 00:31:44,340 Nu e nici un conținut încă pe blog. 535 00:31:44,340 --> 00:31:47,670 Și dacă voi uita de fapt la codul de distributie pe GitHub, 536 00:31:47,670 --> 00:31:50,100 veți vedea un exemplu de cum putem face asta. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Se răcește. 539 00:31:54,110 --> 00:31:54,890 Orice întrebări? 540 00:31:54,890 --> 00:31:55,510 Da. 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2: Cred doar o întrebare fundamentală. 542 00:31:57,468 --> 00:31:59,480 Înapoi la traseul. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Da. 544 00:32:00,230 --> 00:32:01,935 Dacă ne uităm la rute. 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2: În cazul în care nu uses.blogcontroller la a crea poștă, 546 00:32:06,018 --> 00:32:07,560 ce ne direct la? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Da. 548 00:32:08,310 --> 00:32:08,550 Da. 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2: Or ceea ce este that-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Deci, să ia o privire, spune de exemplu, această cale chiar de aici. 551 00:32:12,620 --> 00:32:17,190 Prima parte este real URL-ul pe care utilizatorul va merge la. 552 00:32:17,190 --> 00:32:19,930 Și această matrice de aici, tablou asociativ, definește 553 00:32:19,930 --> 00:32:24,520 cum ne-am dori să avem cerere act ca răspuns la ea. 554 00:32:24,520 --> 00:32:29,090 Deci, folosește este operatorul, funcția pe care noi 555 00:32:29,090 --> 00:32:31,610 doriți să o apelați când un utilizator merge la această adresă URL. 556 00:32:31,610 --> 00:32:35,190 Deci, viewPost chiar aici a fost o Funcția pe care am definit interior 557 00:32:35,190 --> 00:32:36,100 de BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2: Văd. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: --so pe care le poate face de fapt un punct de vedere, 560 00:32:39,368 --> 00:32:42,590 efectua unele calcule, interacționează cu baza de date SQL. 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: Și atunci de altă parte parte, "ca" este un alias pe care le folosim. 563 00:32:46,960 --> 00:32:50,714 Deci, dacă vom observa atunci când am creat forma, 564 00:32:50,714 --> 00:32:52,380 veți observa că URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Deci, l substituie în real URL-ul, astfel încât nu suntem greu 567 00:32:58,330 --> 00:33:02,940 codificare acestea în așa putem schimba odată, spun că dacă am vrut să-l redenumiți. 568 00:33:02,940 --> 00:33:06,055 În loc de post-slash noi, vrem să facem ca, p 569 00:33:06,055 --> 00:33:09,490 slash nou doar pentru a curăța la URL-uri noastre un pic. 570 00:33:09,490 --> 00:33:14,740 Ne-ar schimba într-un singur loc, mai degrabă decât în ​​toate diferite fișiere. 571 00:33:14,740 --> 00:33:15,451 >> Se răcește. 572 00:33:15,451 --> 00:33:15,950 Asta e bine. 573 00:33:15,950 --> 00:33:20,070 Deci, acum avem o foarte platformă blog de bază. 574 00:33:20,070 --> 00:33:24,260 Probabil că doriți să adăugați un buton așa că putem crea de fapt posturi noi. 575 00:33:24,260 --> 00:33:27,850 Deci, dacă ne uităm la Layout Maestru, 576 00:33:27,850 --> 00:33:31,280 avem o secțiune numită antet pe dreapta că tocmai am definit până la partea de sus. 577 00:33:31,280 --> 00:33:34,820 Deci, putem adăuga butoane pentru partea de sus a antetului. 578 00:33:34,820 --> 00:33:43,950 >> Deci, dacă mergem la index.blade.php, de fapt faci este definirea a ceea ce se în interiorul aici. 579 00:33:43,950 --> 00:33:46,970 Deci, această secțiune Antet pe dreapta, ceea ce vom face 580 00:33:46,970 --> 00:33:55,240 este să adăugați un buton pentru a merge la URL-ul este definit de cale postul nou. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Doar să-l curețe și să facă ea destul de și toate Bootstrap, 583 00:34:01,660 --> 00:34:04,630 vom face acest buton o implicit. 584 00:34:04,630 --> 00:34:07,794 Să fac mare pentru distractie. 585 00:34:07,794 --> 00:34:09,969 >> Și în interiorul ei, am putea pune un text. 586 00:34:09,969 --> 00:34:14,030 Dar ce Bootstrap ofera este glyphicons. 587 00:34:14,030 --> 00:34:17,840 Deci, putem adăuga efectiv în creion frumos că am văzut mai devreme. 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-creion. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Deci, acest lucru ne va permite să pună într-o icoană în loc de text. 593 00:34:35,340 --> 00:34:38,960 Acum, dacă facem opri, acest va defini această secțiune. 594 00:34:38,960 --> 00:34:39,460 Și, hei. 595 00:34:39,460 --> 00:34:45,000 Avem un buton frumos care ne leagă direct adăuga o pagină blog. 596 00:34:45,000 --> 00:34:46,659 >> Deci, avem un blog destul de simplu. 597 00:34:46,659 --> 00:34:49,710 Putem adăuga lucruri la el. 598 00:34:49,710 --> 00:34:53,650 Dar ce ne asteptam în general de la bloguri este comentarea. 599 00:34:53,650 --> 00:34:57,340 Deci, este foarte important pentru noi să avem, spune, dacă altcineva vizitează un site web 600 00:34:57,340 --> 00:35:00,620 și îi place într-adevăr postul care ele pot angaja în discuții 601 00:35:00,620 --> 00:35:03,100 cu alte persoane care vizitează pagina. 602 00:35:03,100 --> 00:35:07,050 Deci, vom merge și de a crea o nou tabel de baze de date și un nou model de 603 00:35:07,050 --> 00:35:12,220 astfel încât să putem asocia Comentariile cu posturi. 604 00:35:12,220 --> 00:35:17,370 >> Deci, primul pas, la fel ca înainte, este că avem nevoie pentru a rula o migrație. 605 00:35:17,370 --> 00:35:21,982 Deci ca înainte, să facem php artizan Migrarea: face. 606 00:35:21,982 --> 00:35:24,440 Și vom crea o numit create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Aceasta va crea un fișier care are noul nostru migrației. 609 00:35:36,080 --> 00:35:40,170 Și vom, cum ar fi înainte, să definească un nou tabel. 610 00:35:40,170 --> 00:35:42,773 Deci Schema :: crea o tabel numit comentarii. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Această funcție aici. 613 00:35:48,430 --> 00:35:51,620 Și în interiorul acestui tabel ce vom face este în primul rând, 614 00:35:51,620 --> 00:35:54,260 ca înainte, atribui un ID. 615 00:35:54,260 --> 00:35:56,552 Creșterile de identitate. 616 00:35:56,552 --> 00:36:05,440 >> Vom permite utilizatorilor să asocieze numele lor cu un anumit comentariu. 617 00:36:05,440 --> 00:36:10,080 Vom avea unele conținut care merge împreună cu aceasta, conținut text. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 Și aici ceea ce am de gând să face este ceva diferit. 620 00:36:15,910 --> 00:36:23,620 Vom crea un număr întreg care se numește post_id care 621 00:36:23,620 --> 00:36:32,100 va semnifica ceea ce postare un anumit comentariu merge cu. 622 00:36:32,100 --> 00:36:35,410 >> În plus, vom fapt de gând să stabilit o constrângere cheie externă în acest sens. 623 00:36:35,410 --> 00:36:37,750 Deci, MySQL va impune asta. 624 00:36:37,750 --> 00:36:39,840 Noi nu încercăm să atribui numărul comentariu 625 00:36:39,840 --> 00:36:44,440 5 pentru a posta 5.000 dacă nu am a avut 5.000 de posturi pe ea. 626 00:36:44,440 --> 00:36:50,240 Deci, ceea ce facem aici, facem post_id străine 627 00:36:50,240 --> 00:37:02,046 va fi asociată cu câmpul ID din posturile de masă. 628 00:37:02,046 --> 00:37:05,900 Și vom face de fapt ceva mai util, este onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Deci, dacă am șterge unele publica din baza de date, 630 00:37:11,180 --> 00:37:15,507 că vrem să CASCADE șterge pentru comentarii, de asemenea. 631 00:37:15,507 --> 00:37:18,090 Pentru că nu e de mare ajutor pentru noi să avem comentarii cu privire la posturile 632 00:37:18,090 --> 00:37:19,900 că nu există. 633 00:37:19,900 --> 00:37:23,764 Și, în sfârșit, la fel ca înainte, suntem O să setați timbre de timp în acest sens. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 Și la fel ca înainte, vom au fie migrația inversă 636 00:37:33,510 --> 00:37:37,920 cădere masa comentarii. 637 00:37:37,920 --> 00:37:40,070 >> Deci, acum, dacă ne întoarcem aici, mergem 638 00:37:40,070 --> 00:37:43,110 pentru a rula această migrare, artizan migreze. 639 00:37:43,110 --> 00:37:46,400 Și acum se aplică acest migrația că tocmai am creat. 640 00:37:46,400 --> 00:37:50,080 Deci, dacă ne gasiti phpMyAdmin, facem, de fapt, acum 641 00:37:50,080 --> 00:37:53,210 au un comentarii tabel care are structură care ne-am specificat. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Deci ca înainte, suntem va crea un nou model de 644 00:37:59,610 --> 00:38:04,450 la abstract tabelul SQL că tocmai am creat. 645 00:38:04,450 --> 00:38:05,450 >> Deci, haideți să Adaugă un nou fișier. 646 00:38:05,450 --> 00:38:06,908 Vom numi comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 Și acest lucru este, de fapt va fi destul de simplu cu o ușoară schimbare 649 00:38:15,490 --> 00:38:17,520 din ceea ce am avut înainte. 650 00:38:17,520 --> 00:38:22,790 Deci clasă comentariu extinde Elocvent. 651 00:38:22,790 --> 00:38:25,930 Și ce vom de a face aici este să definească 652 00:38:25,930 --> 00:38:31,360 o funcție care este relație cu alte modele. 653 00:38:31,360 --> 00:38:39,250 Deci, vom avea o funcție postare aici că revine această relație. 654 00:38:39,250 --> 00:38:43,330 Deci, suntem precizând că acest apartine posta, 655 00:38:43,330 --> 00:38:49,200 spunând că există un post că acest comentariu aparține. 656 00:38:49,200 --> 00:38:53,917 >> Acest lucru trebuie să fie de fapt de capital P pentru modelul. 657 00:38:53,917 --> 00:38:56,500 Și acum doar pe de altă clapa parte, trebuie să spunem că, hei. 658 00:38:56,500 --> 00:38:58,160 Posturi avea comentarii. 659 00:38:58,160 --> 00:39:03,030 Deci, ce vom face este defini comentarii funcții publice. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 Și aici este returnat acest lucru are multe comentarii. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Deci, acum magic atunci când avem un post, putem obține comentarii atribut 664 00:39:22,010 --> 00:39:25,615 și-l vom popula cu informații din baza de date. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Deci, haideți să mergem de fapt prin și adăuga o nouă caracteristică pentru a vizualiza fișiere nostru 667 00:39:38,220 --> 00:39:43,600 astfel încât să putem afișaj și de a crea comentarii. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Deci, vom defini o nouă secțiune. 670 00:39:56,865 --> 00:39:59,890 Hai să-l separa cu o regulă orizontală. 671 00:39:59,890 --> 00:40:04,065 Secțiunea id = "comentarii". 672 00:40:04,065 --> 00:40:06,990 Ceea ce vom face aici este, ca înainte, 673 00:40:06,990 --> 00:40:09,880 repeta prin toate comentariile. 674 00:40:09,880 --> 00:40:12,960 Deci, de fapt, cum putem face acest lucru este, așa cum am menționat, destul de magic. 675 00:40:12,960 --> 00:40:14,440 >> Noi facem posta comentarii. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 Și atunci putem face acest lucru pentru fiecare bucla peste fiecare dintre comentarii. 678 00:40:22,710 --> 00:40:25,740 Și ce vom face este de clasa div comentariu, 679 00:40:25,740 --> 00:40:29,240 și vom efectiv imprima acest comentariu. 680 00:40:29,240 --> 00:40:34,150 Deci, arata ca hei, comentariul name-- persoana 681 00:40:34,150 --> 00:40:38,080 care a postat acest comment-- spune punct punct punct. 682 00:40:38,080 --> 00:40:41,240 Vom pune asta într-un bloc citat, doar pentru a face să arate frumos. 683 00:40:41,240 --> 00:40:46,470 Și apoi comenta continutul citat bloc. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 Și foreach. 686 00:40:50,892 --> 00:40:53,100 Deci, acum acest lucru se întâmplă la bucla prin toate comentariile 687 00:40:53,100 --> 00:40:56,500 care este asociat cu fiecare dintre posturile 688 00:40:56,500 --> 00:41:00,960 și afișa fiecare dintre aceste observații. 689 00:41:00,960 --> 00:41:05,120 Am de gând să adăugați o altă secțiune jos aici, ceea ce ne permite să adăugați un comentariu. 690 00:41:05,120 --> 00:41:07,400 Deci, clasa H3. 691 00:41:07,400 --> 00:41:09,580 Pune un titlu aici. 692 00:41:09,580 --> 00:41:10,934 Adaugă un comentariu. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 Și vom defini o nouă formă. 695 00:41:15,700 --> 00:41:18,730 >> Deci ca înainte, suntem de gând să faci formă de acțiune. 696 00:41:18,730 --> 00:41:22,740 Și aici, noul acțiunea este că suntem O să definească un nou controler care 697 00:41:22,740 --> 00:41:26,770 ne permite să răspundă la a posta cererile pentru crearea comentarii. 698 00:41:26,770 --> 00:41:33,365 Deci URL :: traseu createComment. 699 00:41:33,365 --> 00:41:37,730 Am de gând să treacă în parametrul aici. 700 00:41:37,730 --> 00:41:40,380 ID-ul de post care suntem crearea comentariu pe. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 Apoi procedeul conform prezentei formular va fi după. 703 00:41:50,280 --> 00:41:57,240 >> Acum vom adăuga în o două câmpuri, grup formular. 704 00:41:57,240 --> 00:42:04,670 Acest lucru va fi o intrare cu numele "nume" și class = "control formă", 705 00:42:04,670 --> 00:42:14,250 type = "text", și cu înlocuitor = "Numele tau". 706 00:42:14,250 --> 00:42:19,380 Vom asemenea, va defini un alt câmp de formular, care 707 00:42:19,380 --> 00:42:22,970 va fi un text zonă așa cum am avut mai înainte. 708 00:42:22,970 --> 00:42:25,480 La fel ca înainte, numesc conținut. 709 00:42:25,480 --> 00:42:31,160 Class = "formă de control." 710 00:42:31,160 --> 00:42:41,660 Substituent = "Scrie aici." 711 00:42:41,660 --> 00:42:44,100 >> Și așa încât noi poate de fapt îl prezintă, 712 00:42:44,100 --> 00:42:55,740 să prezinte tip și de clasă = "BTN btn-primar." 713 00:42:55,740 --> 00:42:57,005 Închideți formularul. 714 00:42:57,005 --> 00:42:59,010 Închideți această acțiune. 715 00:42:59,010 --> 00:43:06,580 Deci, acum, dacă ne reîmprospăta această pagină în cazul în care avem, să zicem, un anumit post. 716 00:43:06,580 --> 00:43:10,310 Trebuie să reporniți serverul. 717 00:43:10,310 --> 00:43:12,340 PHP artizan servi. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Reporniți asta. 720 00:43:18,334 --> 00:43:19,500 Trebuie să definim ruta. 721 00:43:19,500 --> 00:43:25,090 Dar pentru moment, hai să profite de această în așa fel încât să vă putem arăta de fapt 722 00:43:25,090 --> 00:43:28,750 ceea ce pagina arata ca, și apoi vom crea de fapt ruta. 723 00:43:28,750 --> 00:43:29,250 Deci, hei. 724 00:43:29,250 --> 00:43:37,080 Avem această nouă formă jos aici astfel încât să putem crea comentarii. 725 00:43:37,080 --> 00:43:39,950 Deci, haideți să definim de fapt o Funcția în cadrul controller 726 00:43:39,950 --> 00:43:43,020 astfel încât să putem adăuga comentarii. 727 00:43:43,020 --> 00:43:43,650 Să ne întoarcem. 728 00:43:43,650 --> 00:43:48,420 Și în blogcontroller.php, ceea ce vom face 729 00:43:48,420 --> 00:43:51,620 este a crea o nouă funcție numita crea comentariu. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Funcția createComment public. 732 00:43:57,040 --> 00:44:00,130 Acest lucru va avea un singur parametru, ID-ul de posturi 733 00:44:00,130 --> 00:44:02,280 că suntem comentând. 734 00:44:02,280 --> 00:44:04,790 Și la fel ca înainte, suntem mergi la a lua primul post. 735 00:44:04,790 --> 00:44:10,790 Deci a posta, findOrfail id. 736 00:44:10,790 --> 00:44:15,020 Apoi, vom pentru a crea un nou comentariu. 737 00:44:15,020 --> 00:44:18,880 Deci, comentariul = nou comentariu. 738 00:44:18,880 --> 00:44:26,820 Comentariu name = Intrare :: primi numele. 739 00:44:26,820 --> 00:44:39,420 Conținut = aceeași linie noua în pauze de intrare :: obține conținut. 740 00:44:39,420 --> 00:44:43,460 >> Și, în sfârșit, vom avea la asocia acest comentariu cu postul. 741 00:44:43,460 --> 00:44:47,230 Deci, vom utiliza această funcție, comentarii, 742 00:44:47,230 --> 00:44:50,260 care ne permite să salvați această relație. 743 00:44:50,260 --> 00:44:54,780 Deci, acum acest comentariu va avea automat după ID. 744 00:44:54,780 --> 00:44:57,640 De asemenea, ar putea stabili manual, dar acest lucru este 745 00:44:57,640 --> 00:45:02,490 mai ușor de citit, în măsura ca funcția merge. 746 00:45:02,490 --> 00:45:05,860 Și după ce am efectua acest lucru, ceea ce vrem să facem 747 00:45:05,860 --> 00:45:10,840 este redirecționa utilizatorul cu privire la traseu specificat de viewPost 748 00:45:10,840 --> 00:45:16,010 cu matrice cu parametru de post ID. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> Și acum, astfel încât această efectiv funcții, trebuie să definim acest traseu. 751 00:45:24,660 --> 00:45:27,126 Route :: poștă. 752 00:45:27,126 --> 00:45:32,800 Și acum vom apela acest după slash slash ID comentariu. 753 00:45:32,800 --> 00:45:36,725 Array utilizează noua funcție că tocmai am creat. 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 ca createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Marea. 759 00:45:50,120 --> 00:45:56,150 >> Deci, acum sperăm, dacă vom reîmprospăta această pagină și se adaugă într-un comentariu, să zicem, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Sperăm că această fabrică." 762 00:46:03,920 --> 00:46:05,216 Trimite. 763 00:46:05,216 --> 00:46:09,050 Noi, de fapt, au un comentariu pe acest blog post. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Se răcește. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Deci, acum avem o destul de funcțional post pe blog. 768 00:46:21,430 --> 00:46:23,180 Noi doar de gând să adăuga câteva trucuri așa 769 00:46:23,180 --> 00:46:29,090 că avem ceva mai util informații cu privire la aceste posturi. 770 00:46:29,090 --> 00:46:32,780 >> Deci, dacă ne întoarcem la pagină bară, nu avem nici un sens 771 00:46:32,780 --> 00:46:38,790 de câte comentarii sunt pe fiecare dintre aceste posturi. 772 00:46:38,790 --> 00:46:41,340 Deci, ce vom merge de fapt sa faci este, în interiorul modelul nostru, 773 00:46:41,340 --> 00:46:51,250 defini o functie helper, care permite ne pentru a specifica numărul de comentarii 774 00:46:51,250 --> 00:46:53,020 care merge cu un anumit post. 775 00:46:53,020 --> 00:46:56,050 Deci, vom crea o funcție helper. 776 00:46:56,050 --> 00:46:58,020 >> Funcția publică. 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 Deci, un șir care specifică numărul de comentarii care merg împreună cu ea. 780 00:47:07,180 --> 00:47:12,850 Și ce vom face este spus care num = acestui comentarii conta. 781 00:47:12,850 --> 00:47:15,150 Deci, vom conta numărul de comentarii. 782 00:47:15,150 --> 00:47:22,900 Și dacă acest număr este egal cu 1, suntem doar de gând să se întoarcă 1 comentarii. 783 00:47:22,900 --> 00:47:28,890 Și apoi în caz contrar, ne-am dori să se întoarcă concatenarea Num și comentarii, 784 00:47:28,890 --> 00:47:31,890 asa ca am obține pluralizarea corect. 785 00:47:31,890 --> 00:47:33,380 Doar asigurați aceasta o singură ofertă. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Un comentariu. 788 00:47:37,640 --> 00:47:41,140 >> Și acum putem folosi această funcție direct în interiorul de punctul nostru de vedere. 789 00:47:41,140 --> 00:47:44,510 Deci, dacă ne întoarcem la posturi parțiale care le-am creat, 790 00:47:44,510 --> 00:47:49,370 acum vrem să efectiv afișa numărul de comentarii. 791 00:47:49,370 --> 00:47:52,660 Deci, ce putem face este poștă, utilizați această funcție 792 00:47:52,660 --> 00:47:57,230 care tocmai am creat la afișa numărul de comentarii. 793 00:47:57,230 --> 00:48:00,440 Deci, dacă acum ne refresh, ea nu, de fapt, de afișare 794 00:48:00,440 --> 00:48:02,240 comentariile număr care merge împreună cu ea. 795 00:48:02,240 --> 00:48:05,320 >> Dacă am vrut să fie fantezie dacă de fapt, uita-te la codul de distribuție, 796 00:48:05,320 --> 00:48:07,800 putem lega de fapt acest lucru comentariile. 797 00:48:07,800 --> 00:48:17,040 Dacă vă amintiți, am definit în cadrul vezi că această secțiune are observații de identitate. 798 00:48:17,040 --> 00:48:22,460 Deci, dacă de fapt am vrut să lege direct la secțiunea de comentarii, ceea ce 799 00:48:22,460 --> 00:48:36,000 vom face aici este un href URL-ul de viewPost traseu. 800 00:48:36,000 --> 00:48:40,550 Treceti in ID-ul matrice post de identitate. 801 00:48:40,550 --> 00:48:46,140 Și apoi ne-am dori să mergem la în special secțiunea de comentarii. 802 00:48:46,140 --> 00:48:49,900 >> Aici sa închide o etichetă. 803 00:48:49,900 --> 00:48:52,950 Deci, acum, dacă ne reîmprospăta această pagină, facem click pe acest. 804 00:48:52,950 --> 00:48:54,700 Vom merge direct la secțiunea de comentarii. 805 00:48:54,700 --> 00:48:57,580 Dacă am avea un post mai lung, puteți a se vedea de fapt acest saritura jos. 806 00:48:57,580 --> 00:49:02,668 Dar veți observa că este nu în partea de sus a paginii. 807 00:49:02,668 --> 00:49:04,090 Se răcește. 808 00:49:04,090 --> 00:49:04,600 Marea. 809 00:49:04,600 --> 00:49:08,582 Deci, asta e un destul de simplu exemplu de ceva simplu 810 00:49:08,582 --> 00:49:09,790 pe care le puteți face cu Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Dar se poate observa aici că am făcut o mulțime de lucruri 812 00:49:13,230 --> 00:49:16,200 cu o cantitate destul de mică de cod. 813 00:49:16,200 --> 00:49:19,420 Laravel ne permite să facem Interogări SQL în spatele scenei. 814 00:49:19,420 --> 00:49:21,960 Aceasta nu salubritate pentru noi în spatele scenei. 815 00:49:21,960 --> 00:49:25,940 Ne permite să facem aceste relații foarte ușor fără a avea nevoie de noi 816 00:49:25,940 --> 00:49:33,350 de a face orice SQL alătura declarații combină comentariile cu ceea ce posturile. 817 00:49:33,350 --> 00:49:36,480 Ne permite să facem acest lucru moștenire de template-uri 818 00:49:36,480 --> 00:49:43,780 astfel încât să putem defini aceste cuiburi Fișierele deci nu suntem noi înșine repeta, 819 00:49:43,780 --> 00:49:47,020 la fel ca atunci când am avut acea de afișare a posturilor blog 820 00:49:47,020 --> 00:49:50,770 că noi nu trebuie să copiați și inserați codul. 821 00:49:50,770 --> 00:49:55,450 >> Și de aici se poate construi aplicații din ce în ce complicate. 822 00:49:55,450 --> 00:49:58,370 Vă puteți imagina dacă ne a vrut să pună în aplicare log-in, 823 00:49:58,370 --> 00:50:05,532 am putea spune, aduce un terț cadru care ne permite să facem acest lucru. 824 00:50:05,532 --> 00:50:07,490 Există o grămadă de ele că sunt într-adevăr, într-adevăr 825 00:50:07,490 --> 00:50:09,970 mare, care poate face ca, de recuperare a parolei. 826 00:50:09,970 --> 00:50:14,450 Și să-ți o trimite reseta parola de e-mail. 827 00:50:14,450 --> 00:50:18,260 Putem implementa permisiune astfel încât să pot crea un post, 828 00:50:18,260 --> 00:50:20,350 dar altcineva nu o poate edita. 829 00:50:20,350 --> 00:50:24,610 Putem pune în aplicare funcționalitate a șterge mesajele. 830 00:50:24,610 --> 00:50:28,160 >> Dar puteți vedea aici că avem destul de mult toate componentele rudimentare 831 00:50:28,160 --> 00:50:31,640 pentru a construi ceva într-adevăr, într-adevăr, dinamice și interesante aplicații web. 832 00:50:31,640 --> 00:50:34,035 Deci, cu asta, cred că suntem bine. 833 00:50:34,035 --> 00:50:35,720 Nu voi aveți orice întrebări? 834 00:50:35,720 --> 00:50:36,220 Da? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3: Ce părere aveți obține conținut static? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: conținut static. 837 00:50:39,256 --> 00:50:45,520 Deci, ai văzut înainte că atunci când am avut acest drept aici, acest conținut aspect, 838 00:50:45,520 --> 00:50:49,625 vedere marca, am avut această fără această matrice după aceea. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, am avut această ca doar un fișier static. 841 00:50:59,152 --> 00:51:00,860 Deci, dacă nu trece nimic de-a lungul acesteia, 842 00:51:00,860 --> 00:51:03,340 se va face doar HTML direct. 843 00:51:03,340 --> 00:51:09,240 Dar dacă vom trece în această asociativ matrice de posturi, care este dinamic 844 00:51:09,240 --> 00:51:12,950 tras din baza de date, am poate face pagina de dinamic. 845 00:51:12,950 --> 00:51:13,450 Se răcește. 846 00:51:13,450 --> 00:51:14,830 Orice alte întrebări? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3: Cum te-ai compara Laravel poate la alte opțiuni? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Sigur. 850 00:51:20,525 --> 00:51:21,025 Da. 851 00:51:21,025 --> 00:51:23,430 Deci Laravel este-- asta e un mare question-- 852 00:51:23,430 --> 00:51:26,190 una dintre mai multe opțiuni pentru cadre web. 853 00:51:26,190 --> 00:51:31,160 Deci, Ruby on Rails este una care e popular. 854 00:51:31,160 --> 00:51:34,590 Cred că Twitter folosit pentru a fi implementat cu Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Cred că am pornit de la. 856 00:51:37,600 --> 00:51:40,780 Mai este unul numit FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Deci, Ruby on Rails folosește limbajul Ruby și pune în aplicare o mulțime de lucruri MVC 858 00:51:46,120 --> 00:51:48,200 pe care o vedem aici. 859 00:51:48,200 --> 00:51:52,320 FuelPHP este un alt cadru PHP. 860 00:51:52,320 --> 00:51:54,490 Django este una din preferatele mele. 861 00:51:54,490 --> 00:51:57,010 Este un cadru web pentru Python. 862 00:51:57,010 --> 00:52:01,270 Astfel, puteți scrie aplicația web în Python. 863 00:52:01,270 --> 00:52:03,760 Deci, există o grămadă de aceste opțiuni. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, cred, de și mare este dreptul meu favorit 865 00:52:06,170 --> 00:52:08,232 acum pentru PHP doar pentru că a componentelor 866 00:52:08,232 --> 00:52:09,440 despre care am vorbit mai devreme. 867 00:52:09,440 --> 00:52:11,910 E Compozitor activat. 868 00:52:11,910 --> 00:52:15,750 Acesta include un foarte, foarte sistem ORM expresiv. 869 00:52:15,750 --> 00:52:18,800 De asemenea, are un templating cu adevărat minunat Limba că unele dintre celelalte 870 00:52:18,800 --> 00:52:20,630 pur și simplu nu oferă. 871 00:52:20,630 --> 00:52:21,400 Și migrații. 872 00:52:21,400 --> 00:52:23,432 Migrații sunt minunat, de asemenea. 873 00:52:23,432 --> 00:52:24,860 Cool? 874 00:52:24,860 --> 00:52:25,390 Minunat. 875 00:52:25,390 --> 00:52:27,560 Ei bine, mulțumesc foarte mult pentru uitam acest seminar, 876 00:52:27,560 --> 00:52:30,650 și noroc pe proiectele finale. 877 00:52:30,650 --> 00:52:31,616