1 00:00:00,000 --> 00:00:02,538 >> [MUZYKA GRY] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Hej, wszyscy. 4 00:00:12,390 --> 00:00:13,580 Witaj. 5 00:00:13,580 --> 00:00:16,860 Jest to budynek Dynamiczne Web Apps z Laravel. 6 00:00:16,860 --> 00:00:18,290 Nazywam się Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Jestem studentem drugiego roku studiów badań społecznych z wtórnego w dziedzinie informatyki, 8 00:00:23,860 --> 00:00:27,290 a ja mieszkam w Adams Dom tutaj na Harvardzie. 9 00:00:27,290 --> 00:00:33,340 >> Więc Laravel, co jej najbardziej podstawowych, jest MVC web app ramy. 10 00:00:33,340 --> 00:00:38,265 Więc to, co macie robi z CS50 Finansów, 11 00:00:38,265 --> 00:00:42,480 Laravel jest struktura, która pozwala do tworzenia dynamicznych aplikacji internetowych. 12 00:00:42,480 --> 00:00:47,710 Tak więc można myśleć o nim w pewnym sensie jako przedłużenie typu rzeczy 13 00:00:47,710 --> 00:00:50,470 robiłeś w CS50 Finanse, ale system, który 14 00:00:50,470 --> 00:00:55,890 dużo bardziej wytrzymałe, wiele bardziej elegancki, w pewnym sensie, 15 00:00:55,890 --> 00:00:57,870 oraz zawiera wiele Funkcjonalność dla Ciebie 16 00:00:57,870 --> 00:01:03,060 budować dość skomplikowane aplikacje internetowe. 17 00:01:03,060 --> 00:01:05,010 Warto więc przejść przez niektóre z kluczowych cech, 18 00:01:05,010 --> 00:01:09,550 a następnie będziemy nurkować w przykładem budowania bloga 19 00:01:09,550 --> 00:01:12,500 Aplikacja z Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Tak więc jedną z pierwszych rzeczy, które odróżnia go od typu pracy MVC 21 00:01:16,700 --> 00:01:22,100 że już robi z CS50 jest to zawiera silnik ORM. 22 00:01:22,100 --> 00:01:27,410 ORM stoi więc dla obiektu relacyjne mapowanie. 23 00:01:27,410 --> 00:01:31,080 Więc to pozwala budować Warstwa abstrakcji 24 00:01:31,080 --> 00:01:35,230 od bazy i kontrolery. 25 00:01:35,230 --> 00:01:39,150 Tak więc w przeciwieństwie do CS50 finansów, bezpośrednio dokonać zapytań, 26 00:01:39,150 --> 00:01:44,790 Warstwa ORM pozwala na Abstrakcyjny, że się i utworzyć 27 00:01:44,790 --> 00:01:48,085 Modele, które są bardziej wydajne niż można bezpośrednio z zapytań SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Inna sprawa, że ​​naprawdę pomocne jest dziedziczne szablony. 30 00:01:53,510 --> 00:01:58,990 Więc można zauważyć w CS50 Finansów, skończyć się przepisywanie wiele rzeczy, 31 00:01:58,990 --> 00:02:03,150 gdzie umieszcza mógłbyś potencjalnie ponownego wykorzystania rzeczy, nie jesteś w stanie. 32 00:02:03,150 --> 00:02:08,539 Więc w Laravel, można użyć co znany jako szablonu silnika ostrza 33 00:02:08,539 --> 00:02:10,530 w celu utworzenia układu głównego. 34 00:02:10,530 --> 00:02:15,840 A stamtąd, można odziedziczyć tak, że sub-szablony mogą rzeczywiście 35 00:02:15,840 --> 00:02:21,210 zawierać elementy w obrębie że większej szablonu bazowego. 36 00:02:21,210 --> 00:02:21,810 >> Migracji. 37 00:02:21,810 --> 00:02:29,010 Więc jest to dość standardowe wyposażenie większość nowoczesnych ram aplikacji internetowych. 38 00:02:29,010 --> 00:02:32,710 Więc to pozwala reprezentować Zmiany schematu bazy danych w kodzie. 39 00:02:32,710 --> 00:02:39,200 Więc nie powie, phpMyAdmin, rzeczywiście można utworzyć te migracje 40 00:02:39,200 --> 00:02:44,660 gdzie stanowią bazę Schemat zmian w kodzie bezpośrednio. 41 00:02:44,660 --> 00:02:48,070 A to pozwala to-- szczególnie jeśli masz kilka osób pracujących 42 00:02:48,070 --> 00:02:52,650 w tym samym application-- internetowej śledzić te zmiany, 43 00:02:52,650 --> 00:02:55,380 mówią w GitHub, lub jakiegoś innego repozytorium. 44 00:02:55,380 --> 00:03:00,880 >> Więc to jest bardzo pomocne i ogranicza potrzebę 45 00:03:00,880 --> 00:03:04,580 do, powiedzmy, przechodzą wokół dużo SQL wysypisk. 46 00:03:04,580 --> 00:03:07,140 I wreszcie, Kompozytor jest coś bardzo, bardzo przydatne 47 00:03:07,140 --> 00:03:09,840 która pozwala na korzystanie z innych Kod ludzi robić niesamowite rzeczy. 48 00:03:09,840 --> 00:03:14,020 Więc Laravel na strukturę kilka pakietów kompozytora. 49 00:03:14,020 --> 00:03:17,870 Więc powiedzieć, jeśli chcesz, aby doprowadzić w pakiecie uwierzytelniania 50 00:03:17,870 --> 00:03:23,440 lub jeśli chce doprowadzić w niektórych rodzaj skryptu generatora lub admina 51 00:03:23,440 --> 00:03:26,910 Interfejs można podłączyć i grać te składniki z kompozytorem. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Więc zaczynajmy. 54 00:03:31,570 --> 00:03:35,185 Wszelkie pytania od Ciebie Chłopaki zanim zaczniemy? 55 00:03:35,185 --> 00:03:36,500 Żadnych pytań? 56 00:03:36,500 --> 00:03:37,490 Cool. 57 00:03:37,490 --> 00:03:39,990 Tak więc pierwszy etap jest instalacji Composer. 58 00:03:39,990 --> 00:03:43,590 Tak Kompozytor pozwala na zarządzanie zależnościami, 59 00:03:43,590 --> 00:03:47,770 czy to ramy Laravel lub jakieś inne rozszerzenie osoba trzecia. 60 00:03:47,770 --> 00:03:50,400 Pierwsze polecenie pozwala Ci pobrać Composer, 61 00:03:50,400 --> 00:03:55,890 i drugie polecenie pozwala na przenieść go do folderu lokalnego bin 62 00:03:55,890 --> 00:04:01,340 tak aby można było uruchomić Composer bezpośrednio przez terminal. 63 00:04:01,340 --> 00:04:05,405 >> Po tym, śmiało utworzyć nowy projekt Laravel. 64 00:04:05,405 --> 00:04:07,280 Jesteśmy rzeczywiście będzie korzystać z niektórych przykładowy kod 65 00:04:07,280 --> 00:04:10,760 że już ułożyła do stworzenia tego bloga. 66 00:04:10,760 --> 00:04:14,420 Ale jeśli zaczyna się od zarysowania, należy użyć tego polecenia 67 00:04:14,420 --> 00:04:18,160 tu, kompozytor stworzyć-projekt, Laravel slash Laravel, a następnie 68 00:04:18,160 --> 00:04:19,940 Nazwa projektu. 69 00:04:19,940 --> 00:04:22,275 I że będzie to cały kod dystrybucji 70 00:04:22,275 --> 00:04:23,733 na rozpoczęcie nowego projektu Laravel. 71 00:04:23,733 --> 00:04:28,870 Więc dla ostatecznych projektów CS50, będziesz prawdopodobnie chcesz użyć tego polecenia. 72 00:04:28,870 --> 00:04:31,210 >> Ale mamy zamiar zacząć z tym. 73 00:04:31,210 --> 00:04:34,630 Więc po co zrobiłeś że masz zamiar się 74 00:04:34,630 --> 00:04:40,190 dość rozległe liczba plików w blog50. 75 00:04:40,190 --> 00:04:43,840 Więc po prostu przejść przez Niektóre z tych składników. 76 00:04:43,840 --> 00:04:49,060 Zauważysz na tej trasie katalog, nie ma folderu aplikacji. 77 00:04:49,060 --> 00:04:52,960 W folderze app, nie Kilka osób foldery. 78 00:04:52,960 --> 00:04:56,330 Nuty na początek jest w tym folderze config. 79 00:04:56,330 --> 00:04:59,210 Więc to ustawia się jak aplikacja internetowa jest 80 00:04:59,210 --> 00:05:04,350 będzie, powiedzmy, uwierzytelniania osób lub rzeczy pieniężne lub połączyć się z bazą danych. 81 00:05:04,350 --> 00:05:06,400 >> A co jest naprawdę pomocne jest to, że Laravel 82 00:05:06,400 --> 00:05:09,130 pozwala ustawić różne środowisk programistycznych. 83 00:05:09,130 --> 00:05:12,090 Więc co zrobiliśmy tutaj jest, jeśli idziemy w folderze lokalnym, 84 00:05:12,090 --> 00:05:14,720 znajduje się plik database.php. 85 00:05:14,720 --> 00:05:18,320 I można zauważyć tutaj, że my skonfigurować połączenie MySQL, że 86 00:05:18,320 --> 00:05:22,230 umożliwia podłączenie jednostki do serwera MySQL, który jest 87 00:05:22,230 --> 00:05:24,310 bezpośrednio na urządzeniu CS50. 88 00:05:24,310 --> 00:05:26,980 I mamy połączenia do bazy danych że założyłem nazywa Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Więc rzeczywiście iść do przodu i uruchomić wersję roboczą tego, 91 00:05:37,085 --> 00:05:39,710 po to, żeby zrozumieć, co Wniosek, że budujemy 92 00:05:39,710 --> 00:05:41,390 wygląda. 93 00:05:41,390 --> 00:05:46,150 Więc mam kopię to Blog50 zakończona. 94 00:05:46,150 --> 00:05:51,910 Więc Laravel rzeczywistości posiada wbudowany serwer 95 00:05:51,910 --> 00:05:53,910 które można uruchomić bezpośrednio z linii poleceń. 96 00:05:53,910 --> 00:05:56,900 Tak więc jest to podobne do Pset przed kiedy rzeczywiście 97 00:05:56,900 --> 00:06:00,580 zbudować własny serwer w C Więc oni jeden zbudowany w tak 98 00:06:00,580 --> 00:06:04,010 że można uruchomić aplikacje Laravel bezpośrednio z linii poleceń. 99 00:06:04,010 --> 00:06:11,650 >> Więc jeśli robimy php rzemieślnik służyć, to uruchomi serwer deweloperski 100 00:06:11,650 --> 00:06:13,880 na porcie 8000. 101 00:06:13,880 --> 00:06:18,250 Więc jeśli idziemy do lokalnego hosta 8000, można zauważyć, że hej. 102 00:06:18,250 --> 00:06:20,800 Mamy nasz blog i działa. 103 00:06:20,800 --> 00:06:25,090 Więc Laravel tutaj jest generowanie pierwszej stronie naszego bloga. 104 00:06:25,090 --> 00:06:26,350 Bardzo prosta aplikacja. 105 00:06:26,350 --> 00:06:28,610 Ale jest kilka bardzo ładne cechy 106 00:06:28,610 --> 00:06:31,346 że zawiera pod wyciągiem. 107 00:06:31,346 --> 00:06:33,680 >> Więc aplikacji bloga proste. 108 00:06:33,680 --> 00:06:36,430 Gdybyśmy chcieli stworzyć post, możemy kliknąć na ten przycisk. 109 00:06:36,430 --> 00:06:40,470 Można powiedzieć: "Hej, wszyscy. 110 00:06:40,470 --> 00:06:44,530 To jest naprawdę zabawne Seminarium: "na przykład. 111 00:06:44,530 --> 00:06:46,560 I napisać coś tutaj. 112 00:06:46,560 --> 00:06:48,180 Tekst tutaj. 113 00:06:48,180 --> 00:06:51,327 Jeśli kliknij przycisk Prześlij, będziesz zauważyć, że nasz nowy blog 114 00:06:51,327 --> 00:06:53,410 po dodaniu do przednia strona bloga. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Jeśli wrócimy tutaj, można zauważyć, że nie było już kilka komentarzy 117 00:06:59,970 --> 00:07:01,160 na blogu. 118 00:07:01,160 --> 00:07:03,630 Jeśli więc przewinąć w dół, będziesz zauważyć, że Jonathan Tan mówi 119 00:07:03,630 --> 00:07:08,020 że był bardzo zaintrygowany tym poście. 120 00:07:08,020 --> 00:07:11,570 >> Więc idziemy w jaki sposób obiekt relacyjne mapowanie pozwala 121 00:07:11,570 --> 00:07:16,668 Ci zrobić te relacje w bezproblemowe sposób, jak również. 122 00:07:16,668 --> 00:07:17,660 Cool. 123 00:07:17,660 --> 00:07:20,290 Wszelkie pytania dotyczące funkcjonalności z tego, co mamy zamiar budować? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Cool. 126 00:07:23,840 --> 00:07:28,170 Więc zacznijmy się z rzeczywistości tworzenie tabel bazy danych. 127 00:07:28,170 --> 00:07:33,190 >> Tak więc przypomnieć, że w CS50 Finansów, ci ułożyła stolik dla użytkowników 128 00:07:33,190 --> 00:07:37,100 jak również dla akcje w portfelu. 129 00:07:37,100 --> 00:07:41,040 Tak jak wspomniano wcześniej, czego używamy w Laravel 130 00:07:41,040 --> 00:07:43,090 jest coś, znany jako migracje. 131 00:07:43,090 --> 00:07:48,570 Tak więc, jeśli wrócimy do kod tutaj, dystrybucja, 132 00:07:48,570 --> 00:07:51,790 Pierwsze polecenie, które jest jako, że Laravel zapewnia 133 00:07:51,790 --> 00:07:54,240 jest to polecenie migrować. 134 00:07:54,240 --> 00:07:59,220 Tak więc możemy zrobić php rzemieślnik migrują: make. 135 00:07:59,220 --> 00:08:01,760 Więc ten pozwala nam na stworzenie migracji. 136 00:08:01,760 --> 00:08:03,710 >> A następnie będziemy chcieli stworzyć migracji 137 00:08:03,710 --> 00:08:07,050 nazywa create_posts_table, które będzie 138 00:08:07,050 --> 00:08:11,521 być tam, gdzie mamy zamiar za przechowywanie naszych blogach. 139 00:08:11,521 --> 00:08:14,690 I można zauważyć tutaj, że działa przez jakiś kod, który faktycznie 140 00:08:14,690 --> 00:08:17,580 generuje plik z znacznik czasu na to. 141 00:08:17,580 --> 00:08:22,260 Więc jeśli mamy iść i patrzeć na bazie danych, my zauważyć w Migracje 142 00:08:22,260 --> 00:08:24,830 że jest on tworzony Pusty plik, który dla nas 143 00:08:24,830 --> 00:08:30,100 ma kod szablonowe z nazwą że określone, tworzyć posty tabeli. 144 00:08:30,100 --> 00:08:31,670 >> I pełni dwie funkcje w nim. 145 00:08:31,670 --> 00:08:40,539 Maksymalnie jest to, co chcemy uruchomić, gdy migracji zastosowano do bazy danych. 146 00:08:40,539 --> 00:08:46,380 Iw dół, co mamy zamiar zrobić gdy chcemy wycofać migrację. 147 00:08:46,380 --> 00:08:49,890 Więc zacznijmy się z pisania tej migracji. 148 00:08:49,890 --> 00:08:55,480 Więc nie jako klasy w Laravel zwany schemat. 149 00:08:55,480 --> 00:08:57,910 >> Tak więc mamy zamiar uruchomić Schemat :: stworzyć. 150 00:08:57,910 --> 00:09:01,080 I mamy zamiar stworzyć Tabela nazywa posty. 151 00:09:01,080 --> 00:09:05,980 I tu zastosować to przy użyciu funkcji. 152 00:09:05,980 --> 00:09:11,010 Oraz w tutaj, będziemy rzeczywiście określają zawartość naszej tabeli. 153 00:09:11,010 --> 00:09:14,860 Mamy zamiar stworzyć identyfikator, które jest auto-przyrostu. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Dodatkowo, będziemy , aby utworzyć pole, które 156 00:09:24,350 --> 00:09:27,060 stanowi tytuł naszego blogu. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Mamy również zamiar stworzyć pole do przechowywania tekstu naszym blogu. 159 00:09:36,950 --> 00:09:40,600 I wreszcie, będziemy przechowywać niektóre znaczniki czasu 160 00:09:40,600 --> 00:09:44,690 do kiedy nasze stanowisko zostało utworzone a gdy zostaną zaktualizowane. 161 00:09:44,690 --> 00:09:46,240 I na dół, jest to dość proste. 162 00:09:46,240 --> 00:09:53,974 Wszystko, co chcesz zrobić, to spadek Stół, który stworzyliśmy. 163 00:09:53,974 --> 00:09:54,930 >> Wielki. 164 00:09:54,930 --> 00:09:55,850 Jakieś pytania? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Więc teraz, gdy idziemy do przodu and-- rzeczywistości, host lokalny, 167 00:10:07,110 --> 00:10:09,640 pozwól mi usunąć to, co mieliśmy wcześniej. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Idź do baz danych. 170 00:10:15,190 --> 00:10:17,640 Zamierzam usunąć to, co mieliśmy wcześniej. 171 00:10:17,640 --> 00:10:22,870 Rzuć to i stworzyć Nowa baza danych Blog50. 172 00:10:22,870 --> 00:10:24,930 Więc teraz to, co magiczne część jest tutaj, że my 173 00:10:24,930 --> 00:10:28,760 mogą bezpośrednio stosować te migracje do bazy danych za pomocą wiersza poleceń 174 00:10:28,760 --> 00:10:29,290 narzędziem. 175 00:10:29,290 --> 00:10:35,100 Więc jeśli robimy php rzemieślnik migrują, zauważysz, że hej. 176 00:10:35,100 --> 00:10:38,320 Jest on tworzony w tabeli migracji, które będziemy przyjrzeć się trochę, 177 00:10:38,320 --> 00:10:40,540 i jest stosowany ten pierwszy migracji. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Więc patrzymy na Blog50, zauważysz że jest on stworzony dla nas dwa stoły. 180 00:10:48,920 --> 00:10:50,300 Pierwsza jest ta tabela migracje. 181 00:10:50,300 --> 00:10:54,130 Jeśli więc przeglądać to, można zauważyć, że tabela ta jest dość prosta. 182 00:10:54,130 --> 00:10:55,490 To jest po prostu powiedział, że hej. 183 00:10:55,490 --> 00:10:58,960 Musimy zastosować tę migrację. 184 00:10:58,960 --> 00:11:01,470 Chcemy wrócić i spojrzeć na posty. 185 00:11:01,470 --> 00:11:05,720 Można zauważyć, że konstrukcja jest dokładnie to, co poprosiliśmy go. 186 00:11:05,720 --> 00:11:07,350 Mamy autoinkrementacja ID. 187 00:11:07,350 --> 00:11:10,450 Mamy ciąg do przechowywania Tytuł i pole tekstowe 188 00:11:10,450 --> 00:11:11,450 do przechowywania materiałów. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Wielki. 191 00:11:14,706 --> 00:11:15,560 Cool. 192 00:11:15,560 --> 00:11:21,626 Wszelkie pytania na temat migracji pracy, w jaki sposób możemy je stosować? 193 00:11:21,626 --> 00:11:22,126 Nie? 194 00:11:22,126 --> 00:11:23,600 Cool. 195 00:11:23,600 --> 00:11:26,630 Więc teraz mamy zamiar iść do przodu i rzeczywiście stworzyć model. 196 00:11:26,630 --> 00:11:33,100 Dlatego chcemy, aby stworzyć model posty, które przechowuje abstrakcję danych. 197 00:11:33,100 --> 00:11:41,040 Tak więc, zamiast robić zapytań MySQL bezpośrednio, mamy zamiar stworzyć. 198 00:11:41,040 --> 00:11:45,840 Musimy więc stworzyć Folder tutaj zwanych modeli. 199 00:11:45,840 --> 00:11:48,905 A wewnątrz tutaj, będziemy utwórz plik o nazwie post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Wewnątrz tego pliku PHP, mamy zamiar stworzyć 202 00:11:54,550 --> 00:12:00,590 klasa po której rozciąga wymowne. 203 00:12:00,590 --> 00:12:08,950 Wymowna jest nazwa ORM Silnik, który Laravel zapewnia. 204 00:12:08,950 --> 00:12:12,799 I tutaj, możemy się spodziewać, że rzeczywiście trzeba napisać kod. 205 00:12:12,799 --> 00:12:14,840 Mamy zamiar napisać niektóre funkcje pomocnicze później. 206 00:12:14,840 --> 00:12:19,420 Ale po wyjęciu z pudełka, to już będzie rozpoznać, co jest w bazie danych 207 00:12:19,420 --> 00:12:24,770 i możemy wejść, powiedzieć, tekst naszego blogu lub tytuł, 208 00:12:24,770 --> 00:12:29,230 i tworzyć rzeczy bezpośrednio prawie żaden kod w ogóle. 209 00:12:29,230 --> 00:12:31,110 >> Jest to więc jeden z magicznych składników. 210 00:12:31,110 --> 00:12:34,980 I wiatr po tej klasie jest bardziej pełnoprawną, 211 00:12:34,980 --> 00:12:40,480 będziemy zawierać informacje o tym, co jest to związane z tak komentarzach. 212 00:12:40,480 --> 00:12:42,310 Również utworzyć funkcję tak naprawdę możemy 213 00:12:42,310 --> 00:12:46,340 bezpośrednio uzyskać adres URL strony blogu. 214 00:12:46,340 --> 00:12:46,840 Cool. 215 00:12:46,840 --> 00:12:47,881 Wszelkie pytania na ten temat? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Nie. 218 00:12:51,832 --> 00:12:54,100 Cool. 219 00:12:54,100 --> 00:12:57,860 >> Więc teraz, gdy mamy nasz model, my Aby utworzyć kontroler, który jest 220 00:12:57,860 --> 00:13:02,340 w stanie współpracować z tych modeli a następnie w bazie. 221 00:13:02,340 --> 00:13:05,540 Więc jeśli spojrzeć na BlogController, będziesz 222 00:13:05,540 --> 00:13:08,490 zauważyć, że nie jest dużo tu teraz. 223 00:13:08,490 --> 00:13:13,220 Wszystko co jest, to funkcja indeksu który generuje strony startowej, 224 00:13:13,220 --> 00:13:18,220 ale bez niczego tam jeszcze wyświetlić. 225 00:13:18,220 --> 00:13:20,560 >> Więc pierwszej funkcji które mamy zamiar stworzyć 226 00:13:20,560 --> 00:13:25,790 jest taka, która pozwala do tworzenia blogu. 227 00:13:25,790 --> 00:13:30,540 Tak więc mamy zamiar zadeklarować Nowa funkcja nazywa newPost. 228 00:13:30,540 --> 00:13:36,430 A wewnątrz tutaj po prostu, jedziemy ustawić układ strony 229 00:13:36,430 --> 00:13:41,850 za renderowanie wersji, jeśli przypomnieć z CS50, 230 00:13:41,850 --> 00:13:48,020 tego szablonu o nazwie blog.new, które mamy zamiar stworzyć w trochę. 231 00:13:48,020 --> 00:13:53,170 >> Można zauważyć tutaj, że na linii sześciu możemy określić tę zmienną, układ. 232 00:13:53,170 --> 00:13:55,820 A jeśli przyjrzymy w folderze Widoki 233 00:13:55,820 --> 00:14:01,640 istnieje podzial folderów, które zawiera bardzo prosty plik HTML. 234 00:14:01,640 --> 00:14:04,680 I notatki, można zauważyć, że mamy opakowanie 235 00:14:04,680 --> 00:14:06,800 tutaj daje zawartość. 236 00:14:06,800 --> 00:14:09,460 Więc wewnątrz naszego szablonu co będziemy robić 237 00:14:09,460 --> 00:14:16,180 jest stworzyć coś, co będzie podstawione bezpośrednio w tym układzie. 238 00:14:16,180 --> 00:14:20,060 >> Więc my powiedzieliśmy, że chcemy, aby uczynić Szablon nazywa blog.new. 239 00:14:20,060 --> 00:14:23,790 Ale wewnątrz Blog, nie jeszcze nie ten nowy szablon. 240 00:14:23,790 --> 00:14:26,910 Tak więc mamy zamiar stworzyć plik o nazwie new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Mówi Laravel, że ten plik PHP powinny 242 00:14:29,860 --> 00:14:31,720 być wykonane z Ostrze system szablonów. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Więc jest to dość prosty plik. 245 00:14:42,630 --> 00:14:46,690 To będzie forma, w którym faktycznie dodać w blogu. 246 00:14:46,690 --> 00:14:49,220 >> Więc magii tutaj od Dziedziczenie jest, że hej. 247 00:14:49,220 --> 00:14:52,950 Chcemy, aby określić, które sekcji, sekcja treść 248 00:14:52,950 --> 00:14:56,640 tu, który jest wyznaczony przezsection istop. 249 00:14:56,640 --> 00:15:02,260 Więc co jest pomiędzy tutaj będzie być podstawiony do układu głównego. 250 00:15:02,260 --> 00:15:07,000 A tu, co chcemy zrobić, to bardzo prosto utworzyć nowy plik HTML. 251 00:15:07,000 --> 00:15:08,690 Miejmy tylko dodać krótki tytuł. 252 00:15:08,690 --> 00:15:09,600 Dodaj blogu. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 A w niej, jesteśmy zamierza utworzyć formularz. 255 00:15:15,390 --> 00:15:19,197 >> Ta postać ma mieć działanie. 256 00:15:19,197 --> 00:15:21,780 I to ma być coś że zastąpienie w terminie, 257 00:15:21,780 --> 00:15:24,200 i zobaczymy, jak routingu pasuje do tutaj. 258 00:15:24,200 --> 00:15:33,600 Ale my po prostu się do zdefiniowania teraz Świadczy to o tym, że w zawartości od drogi 259 00:15:33,600 --> 00:15:34,860 z createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 I wtedy to się dzieje mieć metody POST. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 W ramach tutaj, jedziemy mieć dwa pola. 264 00:15:47,590 --> 00:15:49,170 Div class = "form-grupa". 265 00:15:49,170 --> 00:15:55,806 >> Używamy bibliotekę Bootstrap CSS łaskawie dostarczane przez Twittera. 266 00:15:55,806 --> 00:15:57,720 Tak więc mamy zamiar stworzyć dwa z nich. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Więc to pierwsze wejście jest będzie tytuł. 269 00:16:05,970 --> 00:16:08,437 Tak Wejście name = "title". 270 00:16:08,437 --> 00:16:09,270 Class = "formcontrol". 271 00:16:09,270 --> 00:16:13,540 272 00:16:13,540 --> 00:16:14,425 Type = "text". 273 00:16:14,425 --> 00:16:16,050 Mam zamiar dodać zastępczy = "Tytuł". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> A potem drugi jest będzie obszar tekstu. 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 I zastępczy = "Wpisz tutaj". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Nie idziemy. 282 00:16:43,480 --> 00:16:46,760 Wreszcie będziemy dodać przycisk szybkiego przedstawienia. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-podstawowej". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Więc to wszystko cechy Bootstrap tak 286 00:16:55,340 --> 00:16:58,510 że można układać w sposób, który jest 287 00:16:58,510 --> 00:17:03,730 łupem dla użytkownika, a nie gołym HTML. 288 00:17:03,730 --> 00:17:06,250 >> Więc mamy zdefiniowane kontroler się tutaj. 289 00:17:06,250 --> 00:17:08,930 Odkryliśmy bardzo prosty widok. 290 00:17:08,930 --> 00:17:12,339 Ale to, co brakuje tkanka. 291 00:17:12,339 --> 00:17:15,420 Więc w tym momencie, Laravel nie ma pojęcia, jak 292 00:17:15,420 --> 00:17:18,312 jedziemy do rzeczywistości dostęp do tego kontrolera. 293 00:17:18,312 --> 00:17:20,270 Tak więc jest to określone w plik o nazwie routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 A teraz mamy jedną trasę. 296 00:17:24,310 --> 00:17:29,060 Który jest, gdy idziemy do Droga do domu na tej stronie internetowej, 297 00:17:29,060 --> 00:17:33,140 to się czyni Kontroler indeksu. 298 00:17:33,140 --> 00:17:38,880 Więc o co musimy zrobić, to wdrożenie Nowa trasa dla nas, aby utworzyć stanowisko. 299 00:17:38,880 --> 00:17:41,910 >> Tak więc korzystać z tej metody get, który określa 300 00:17:41,910 --> 00:17:48,650 że gdy użytkownik próbuje uzyskać to page-- specjalnie 301 00:17:48,650 --> 00:17:52,850 po slash nowy page-- co będziemy robić 302 00:17:52,850 --> 00:18:02,060 jest używać kontrolera o nazwie BlogController nowa wiadomość. 303 00:18:02,060 --> 00:18:03,460 Ten, który właśnie stworzył. 304 00:18:03,460 --> 00:18:08,090 A potem jedziemy skojarzenie go jako newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Mamy zamiar stworzyć inny Funkcja w trochę. 307 00:18:19,850 --> 00:18:23,520 Ale co tu pod Klucz "as" jest co 308 00:18:23,520 --> 00:18:28,195 możemy zastąpić ciągu nasze szablony Blade. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Więc teraz, niech faktycznie też powiedzieć trasę. 311 00:18:36,230 --> 00:18:38,380 Więc my też będzie utworzyć kontroler 312 00:18:38,380 --> 00:18:41,020 tak, że możemy tworzyć te posty. 313 00:18:41,020 --> 00:18:46,940 Więc jeśli postów użytkownika do postu slash nowa, co będziemy robić 314 00:18:46,940 --> 00:18:51,350 to korzysta z kontrolera mamy zamiar wkrótce stworzyć 315 00:18:51,350 --> 00:18:56,160 nazywa BlogController na createPost. 316 00:18:56,160 --> 00:19:01,929 I jedziemy do aliasu to z jak createPost. 317 00:19:01,929 --> 00:19:03,380 Cool. 318 00:19:03,380 --> 00:19:05,811 >> Jakieś pytania? 319 00:19:05,811 --> 00:19:06,310 Cool. 320 00:19:06,310 --> 00:19:09,790 Warto więc działać, co mamy do tej pory. 321 00:19:09,790 --> 00:19:16,930 Więc jeśli robimy php rzemieślnik służyć, zobaczymy wiele błędów. 322 00:19:16,930 --> 00:19:20,385 Wygląda więc na to mamy błąd składni na trasach linii 27. 323 00:19:20,385 --> 00:19:20,885 Ach. 324 00:19:20,885 --> 00:19:21,718 Brakuje średnik. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Więc jeśli idziemy do 8000, zobaczysz tutaj jeszcze nic. 327 00:19:32,870 --> 00:19:34,740 Więc to jest domyślna strona domowa. 328 00:19:34,740 --> 00:19:37,730 >> Ale jeśli pójdziemy do posta slash nowa, hej. 329 00:19:37,730 --> 00:19:40,425 To będzie postać, która właśnie stworzyliśmy. 330 00:19:40,425 --> 00:19:42,550 W tej chwili nie ma realizowane funkcje 331 00:19:42,550 --> 00:19:44,060 od kiedy nacisnąć przycisk Wyślij. 332 00:19:44,060 --> 00:19:47,110 Jeśli więc kliknij Zatwierdź przycisk, to będzie działać błąd. 333 00:19:47,110 --> 00:19:49,840 Ale jedziemy do kodu, który właśnie teraz, właśnie my 334 00:19:49,840 --> 00:19:54,840 chcesz zrobić, gdy użytkownik podnosi ten formularz. 335 00:19:54,840 --> 00:19:55,770 >> Więc zróbmy to. 336 00:19:55,770 --> 00:19:57,380 Wróć do pliku kontrolerów. 337 00:19:57,380 --> 00:20:00,180 Co zamierzamy zrobić, to wdrożenia tej nowej funkcji 338 00:20:00,180 --> 00:20:04,360 , które pozwala nam na stworzenie stanowiska. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Oświadczam, nową funkcję. 341 00:20:08,990 --> 00:20:11,527 Public function createPost. 342 00:20:11,527 --> 00:20:14,610 I funkcja będzie trochę bardziej skomplikowany niż to, co 343 00:20:14,610 --> 00:20:15,559 mieliśmy wcześniej. 344 00:20:15,559 --> 00:20:18,350 Ale zobaczysz tutaj, że nie jesteśmy będzie właściwie pisać żadnego SQL. 345 00:20:18,350 --> 00:20:20,980 ORM, Wymowne ORM, ma umożliwić 346 00:20:20,980 --> 00:20:26,400 nam się to zrobić w niektórych sposoby bardziej elegancki sposób. 347 00:20:26,400 --> 00:20:29,140 >> Tak więc mamy zamiar stworzyć nowy post. 348 00:20:29,140 --> 00:20:34,120 I tu jesteśmy uruchamianiu nowego obiektu 349 00:20:34,120 --> 00:20:38,080 z modelu, który właśnie stworzył model po. 350 00:20:38,080 --> 00:20:44,450 A co mamy zamiar zrobić, to ustawić Tytuł cechą tego za pomocą czegoś 351 00:20:44,450 --> 00:20:47,380 że mamy z serwera. 352 00:20:47,380 --> 00:20:52,060 Więc to jest podobne do tego, co mieliśmy wcześniej w CS50 Finansów 353 00:20:52,060 --> 00:20:57,750 gdzie możemy zrobić, używając Super Globalny post Szukam tytułu. 354 00:20:57,750 --> 00:21:01,600 >> Więc Laravel zapewnia pewne sanitarnych i cokolwiek za pomocą tej funkcji pomocnika. 355 00:21:01,600 --> 00:21:07,610 Więc wolimy używać zamiast tego tej bardzo podstawowej formie surowego z PHP. 356 00:21:07,610 --> 00:21:17,430 A potem, co mamy zamiar zrobić, to ustawić treść umowy do wejścia uzyskać zawartość. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Jesteśmy rzeczywiście będzie zawijać to w pomocny funkcji 359 00:21:22,720 --> 00:21:31,820 że PHP zapewnia nazywa nl2br, które Okazuje nowe linie, NLS, do BRS, przerwy, 360 00:21:31,820 --> 00:21:35,822 tak, że rzeczywiście możemy mieć różne ustępy w nim. 361 00:21:35,822 --> 00:21:38,030 I wreszcie, co będziemy zrobić, to tego wpisu. 362 00:21:38,030 --> 00:21:41,686 Tak nazywamy funkcję zapisz się na tym modelu. 363 00:21:41,686 --> 00:21:43,800 Mamy zamiar zapisać post. 364 00:21:43,800 --> 00:21:49,970 I wreszcie, co będziemy robić jest przekierować użytkownika specjalnie 365 00:21:49,970 --> 00:21:55,060 do trasy, który mamy zamiar wkrótce stworzyć, alias przez viewPost. 366 00:21:55,060 --> 00:22:00,435 I mamy zamiar przejść w argumentach id, jest id tym nowym stanowisku. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Wielki. 369 00:22:05,640 --> 00:22:09,090 Więc teraz, jeśli faktycznie go i uruchomić tego. 370 00:22:09,090 --> 00:22:11,370 Mamy zamiar dodać nowy post. 371 00:22:11,370 --> 00:22:15,930 Powiedzmy, że jest to seminarium 50. 372 00:22:15,930 --> 00:22:17,620 I powiedzieć, na pewno. 373 00:22:17,620 --> 00:22:18,240 ASDL. 374 00:22:18,240 --> 00:22:18,740 Cokolwiek. 375 00:22:18,740 --> 00:22:20,320 Jakiś zawartości. 376 00:22:20,320 --> 00:22:21,180 I przedkłada go. 377 00:22:21,180 --> 00:22:23,850 A my zauważyć, że, hej. Trasy nie zdefiniowane. 378 00:22:23,850 --> 00:22:32,340 Ale jeśli spojrzeć na phpMyAdmin i poszukaj tego, czy naszym funkcji 379 00:22:32,340 --> 00:22:34,370 nie zrobił nic. 380 00:22:34,370 --> 00:22:36,670 Spójrz na stanowiskach Blog50. 381 00:22:36,670 --> 00:22:37,720 Będziemy zauważyć, że hej. 382 00:22:37,720 --> 00:22:43,530 W rzeczywistości, nie tylko stworzenie tego bloga zakładać z sygnatury czasowe określone. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Więc teraz wróćmy i rzeczywiście stworzyć to inna funkcja w naszym kontrolerze, 385 00:22:51,630 --> 00:22:54,790 specjalnie sterownik viewPost. 386 00:22:54,790 --> 00:23:00,290 ViewPost Funkcja Więc publicznego. 387 00:23:00,290 --> 00:23:04,070 Więc co zrobimy, a nie posiadania pustych nawiasów, 388 00:23:04,070 --> 00:23:08,800 będziemy chcieli przekazać w ID post, który tworzymy. 389 00:23:08,800 --> 00:23:12,800 I stąd to, co mamy zamiar zrobić faktycznie kwerendy bazy danych dla niego. 390 00:23:12,800 --> 00:23:15,140 >> Jeśli więc zakładać, istnieje funkcja o nazwie 391 00:23:15,140 --> 00:23:18,860 Znajdź która pozwala nam zapytanie go przez ID. 392 00:23:18,860 --> 00:23:22,110 W szczególności, w rzeczywistości, będziemy użyć innej wersji tego nazwie 393 00:23:22,110 --> 00:23:27,880 Znajdź lub Fail, która pozwala nam aby wyjść z tej funkcji, 394 00:23:27,880 --> 00:23:34,700 wyjątek Jeśli ID mijamy się, nie istnieje. 395 00:23:34,700 --> 00:23:37,500 A potem mamy zamiar coś zrobić podobny do tego, co zrobiliśmy wcześniej 396 00:23:37,500 --> 00:23:41,100 gdzie ustawić zawartość tej strony jest 397 00:23:41,100 --> 00:23:47,950 renderowane wersja tego nowego widoku które mamy zamiar stworzyć, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> I mamy zamiar przejść do it-- tak jak w CS50 renderowanie 399 00:23:51,030 --> 00:23:56,645 function-- słownika zmiennych. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Kluczami tablicy asocjacyjnej stają się zmienne w szablonie. 402 00:24:04,620 --> 00:24:06,830 Tak więc mamy zamiar zrobić Posta. 403 00:24:06,830 --> 00:24:12,474 Więc przejść pośrednio stanowisko, że my zapytaliśmy z bazy danych. , 404 00:24:12,474 --> 00:24:14,390 Teraz to, co mamy zamiar zrobić, to stworzyć ten pogląd 405 00:24:14,390 --> 00:24:17,560 tak, że rzeczywiście możemy zobaczyć na blogach, że mamy zbudowane. 406 00:24:17,560 --> 00:24:20,280 >> Tak więc mamy zamiar stworzyć plik o nazwie view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Więc wewnątrz tego szablonu, co będziemy robić 409 00:24:29,640 --> 00:24:39,700 jest umieszczany razem prosta strona, która pozwala na wyświetlanie zawartości. 410 00:24:39,700 --> 00:24:44,280 Więc robimy sekcję, to przed zawartości. 411 00:24:44,280 --> 00:24:46,800 Przestań. 412 00:24:46,800 --> 00:24:53,920 A co mamy zamiar do zrobienia w tutaj jest 413 00:24:53,920 --> 00:24:56,930 napisać HTML do wyświetlania tej strony. 414 00:24:56,930 --> 00:25:03,590 >> Tak więc mamy zamiar zawinąć go z fantazji nowy element HTML5 nazywa art. 415 00:25:03,590 --> 00:25:05,790 I tutaj, jedziemy mieć nagłówek gdzie 416 00:25:05,790 --> 00:25:12,190 będziemy po prostu mieć h1, który zawiera tytuł wpisu. 417 00:25:12,190 --> 00:25:17,120 Więc, jeśli spojrzymy na to podwójne kręcone notacja nawiasów, 418 00:25:17,120 --> 00:25:21,690 będzie to zrobić w zasadzie PHP echo tytuł wpisu. 419 00:25:21,690 --> 00:25:25,630 Więc jest to pomocne skrót że Laravel zapewnia nas. 420 00:25:25,630 --> 00:25:31,070 Tak więc mamy zamiar używać Ten zapis zamiast. 421 00:25:31,070 --> 00:25:40,220 >> I tu, będziemy również wydrukować zawartość tego. 422 00:25:40,220 --> 00:25:43,480 I tutaj, jedziemy zrobić pocztowy treści. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 A na dole, co jesteśmy zamiar zrobić, to utworzyć stopkę. 425 00:25:50,660 --> 00:25:57,690 Oraz w stopce, będziemy Pierwszy ekran, kiedy to został opublikowany. 426 00:25:57,690 --> 00:26:01,320 Więc ten został opublikowany w, stworzona na. 427 00:26:01,320 --> 00:26:07,996 >> I Laravel używa naprawdę ładne Data biblioteki nazwie Carbon. 428 00:26:07,996 --> 00:26:11,120 Tak naprawdę możemy zrobić coś, co nazywa difforHumans, które obejrzałeś wcześniej. 429 00:26:11,120 --> 00:26:14,360 Kiedy pisał. będzie to powiedzieć, jak pięć sekund temu. 430 00:26:14,360 --> 00:26:16,860 Więc to jest naprawdę ładne Funkcjonalność Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 I wreszcie, będziemy aby zamknąć to stopkę. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Więc teraz, jeśli wrócimy do Strona główna jedziemy 435 00:26:31,450 --> 00:26:34,490 zobaczyć jeszcze tutaj, bo nic nie zostały zakodowane się na stronie głównej. 436 00:26:34,490 --> 00:26:40,962 Ale jeśli pójdziemy do posta jeden ukośnik, jedziemy zobaczyć wyjątek. 437 00:26:40,962 --> 00:26:42,670 Czy ktoś wie dlaczego widzimy wyjątek? 438 00:26:42,670 --> 00:26:44,516 Co nam brakuje? 439 00:26:44,516 --> 00:26:45,290 Jakieś pomysły? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Więc to, co zrobiliśmy, wcześniej dla nas rzeczywiście 442 00:26:49,790 --> 00:26:52,285 do określenia, w jaki sposób dostać się do Poszczególne sterowniki? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> GŁOŚNIK 1: trasa? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Tak. 446 00:26:56,519 --> 00:26:58,070 Więc musimy jeszcze określić trasy. 447 00:26:58,070 --> 00:26:59,794 Więc wracamy tutaj do routes.php. 448 00:26:59,794 --> 00:27:01,710 Zauważysz, że my nie właściwie zdefiniowana 449 00:27:01,710 --> 00:27:05,010 jak dostaniesz do tego kontrolera. 450 00:27:05,010 --> 00:27:06,780 Więc teraz jedziemy do zdefiniowania tej trasy. 451 00:27:06,780 --> 00:27:09,280 Jest to dość proste, podobny do tego, co zrobiliśmy wcześniej. 452 00:27:09,280 --> 00:27:13,910 Ale to, co mamy zamiar uwagi jest to, że będziemy mieć zastępczy. 453 00:27:13,910 --> 00:27:18,730 >> Więc jeśli robimy route.get ukośnik ID postu. 454 00:27:18,730 --> 00:27:24,290 Więc ID jest teraz, co się być przekazywane do sterownika. 455 00:27:24,290 --> 00:27:27,820 To będzie używać Kontroler, że po prostu 456 00:27:27,820 --> 00:27:33,560 stworzył, BlogController na viewPost. 457 00:27:33,560 --> 00:27:36,420 I będziemy Alias ​​to jako viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Wielki. 460 00:27:47,490 --> 00:27:49,470 Więc teraz jedziemy do stworzenia tej trasy. 461 00:27:49,470 --> 00:27:52,100 >> Więc teraz, gdy jedziemy tutaj i odświeżyć stronę, 462 00:27:52,100 --> 00:27:54,410 że w rzeczywistości nie ma nasz nowy wpis na blogu. 463 00:27:54,410 --> 00:27:57,710 Więc to jest to, co stworzył wcześniej. 464 00:27:57,710 --> 00:28:01,320 Bardzo prosta strona, ale wyświetlacze blogu, że po prostu stworzył. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Cool. 467 00:28:04,760 --> 00:28:08,880 A jeśli faktycznie przejść przez całość Proces tworzenia nowego blogu, 468 00:28:08,880 --> 00:28:11,700 my zauważyć, że wszystko przekierowania poprawnie. 469 00:28:11,700 --> 00:28:12,950 Jeśli powiem: "Cześć. 470 00:28:12,950 --> 00:28:15,710 Jestem Jonathan Tan ". 471 00:28:15,710 --> 00:28:18,550 Powiedz: "To jest mój wpis na blogu." 472 00:28:18,550 --> 00:28:22,830 I przedkłada go, to stworzy ten nowy wpis na blogu z ID 2, 473 00:28:22,830 --> 00:28:28,920 które przyrosty od tego, co mieliśmy wcześniej i wyświetla go poprawnie. 474 00:28:28,920 --> 00:28:30,760 Niesamowite. 475 00:28:30,760 --> 00:28:32,930 >> Jakieś pytania? 476 00:28:32,930 --> 00:28:33,430 Tak? 477 00:28:33,430 --> 00:28:36,537 >> GŁOŚNIK 2: Czy Laravel uchwyt dezynfekcja i wszystko dla Ciebie? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Tak. 479 00:28:37,245 --> 00:28:42,990 Więc kiedy widzieliśmy wcześniej, kiedy zrobiliśmy wejście Colon się, 480 00:28:42,990 --> 00:28:47,720 że sanitates dowolny SQL zastrzyki i etażerka 481 00:28:47,720 --> 00:28:51,660 które mogą chcemy wykonywać, jeśli jesteśmy szkodliwy użytkownik serwisu. 482 00:28:51,660 --> 00:28:54,115 Więc Laravel zajmuje dużo stanowi, że za kulisami. 483 00:28:54,115 --> 00:28:57,030 Dobre pytanie. 484 00:28:57,030 --> 00:29:00,390 >> Warto więc spojrzeć na stronie głównej. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Więc jeśli najpierw wrócić do Sterownik do strony głównej, 487 00:29:06,790 --> 00:29:08,740 można zauważyć, że to nie wiele zrobić tutaj. 488 00:29:08,740 --> 00:29:11,620 Zauważysz, że nie jesteśmy przechodząc do tego kontrolera 489 00:29:11,620 --> 00:29:13,830 coś szczególnie pomocne. 490 00:29:13,830 --> 00:29:16,660 To jest po prostu ten plik indeksu. 491 00:29:16,660 --> 00:29:18,770 >> Warto więc przejść do to coś pomocną. 492 00:29:18,770 --> 00:29:21,450 A konkretnie, jesteśmy przejdzie w postach. 493 00:29:21,450 --> 00:29:28,740 I Laravel pozwala nam zrobić słupek wszystko, co 494 00:29:28,740 --> 00:29:30,625 pozwoli nam uzyskać wszystkie posty. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Teraz, jeśli wrócimy do index.php, zobaczysz, hej. 497 00:29:35,730 --> 00:29:37,060 Nic jeszcze tutaj. 498 00:29:37,060 --> 00:29:41,290 Ale to, co chcemy zrobić tutaj faktycznie iteracji, 499 00:29:41,290 --> 00:29:46,420 zrobić pętli foreach nad stanowisk pozwala wydrukować posty. 500 00:29:46,420 --> 00:29:53,180 >> Więc foreach posty jako po to, co chcemy zrobić 501 00:29:53,180 --> 00:29:57,252 jest wydrukować zawartość na blogu. 502 00:29:57,252 --> 00:30:00,210 Ale jedno można zauważyć, jest to, że faktycznie napisał większość tego kodu 503 00:30:00,210 --> 00:30:01,370 już w view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Tak więc to, co mamy zamiar zrobić to w rzeczywistości używać piękny pomocne cechę Blade 506 00:30:08,640 --> 00:30:11,300 a czynnik ten wspólny kod. 507 00:30:11,300 --> 00:30:12,570 Więc tutaj. 508 00:30:12,570 --> 00:30:16,210 >> Zamierzamy wykorzystać tę treść tu, i co mamy zamiar zrobić 509 00:30:16,210 --> 00:30:18,170 jest utworzyć nowy folder. 510 00:30:18,170 --> 00:30:20,364 Miejmy tylko nazwać podszablonów. 511 00:30:20,364 --> 00:30:22,530 I tutaj, jedziemy stworzyć post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Więc tutaj, uwzględniliśmy się sposób, w które chcemy wyświetlić te posty. 514 00:30:33,100 --> 00:30:38,690 A tu, co zrobimy, a nie która faktycznie posiada ten kod HTML bezpośrednio, 515 00:30:38,690 --> 00:30:41,530 będziemy korzystać z tej dyrektywy nazywa to blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> A co mamy zamiar zrobić tutaj jest przekazać na stanowisku strony. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Więc teraz, jeśli wrócimy tutaj, my będziemy Zauważ, że funkcja jest nadal 520 00:31:01,050 --> 00:31:01,550 same. 521 00:31:01,550 --> 00:31:05,140 Ale teraz mamy to zbitek kodu, ten kod HTML. 522 00:31:05,140 --> 00:31:07,070 Tak więc możemy używać go w indeksie. 523 00:31:07,070 --> 00:31:09,090 Więc, jest to bardzo proste. 524 00:31:09,090 --> 00:31:17,870 Wszystko co robimy jest m.in. blog.partials.post i tablicy. 525 00:31:17,870 --> 00:31:20,845 I gdzieś wcześniej, robimy Posta. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Więc teraz, jeśli wrócimy do strona główna, zobaczymy, że hej. 528 00:31:28,182 --> 00:31:30,515 Mamy listę wszystkich blogi, które mieliśmy wcześniej. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Możemy dodać kilka "jeśli" Warunki i "innego" warunki 531 00:31:37,700 --> 00:31:39,979 tak, że jeśli nie mamy coś na blogu, 532 00:31:39,979 --> 00:31:41,520 Chcemy, aby wyświetlić coś pomocne. 533 00:31:41,520 --> 00:31:42,570 Jak, hej. 534 00:31:42,570 --> 00:31:44,340 Nie ma jeszcze żadnych treści na blogu. 535 00:31:44,340 --> 00:31:47,670 A jeśli wy właściwie spojrzeć na Kod dystrybucji na GitHub, 536 00:31:47,670 --> 00:31:50,100 zobaczysz przykład, jak to zrobić. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Cool. 539 00:31:54,110 --> 00:31:54,890 Jakieś pytania? 540 00:31:54,890 --> 00:31:55,510 Tak. 541 00:31:55,510 --> 00:31:57,468 >> GŁOŚNIK 2: Myślę, że po prostu podstawowe pytanie. 542 00:31:57,468 --> 00:31:59,480 Powrót na trasie. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Tak. 544 00:32:00,230 --> 00:32:01,935 Jeśli spojrzeć na trasach. 545 00:32:01,935 --> 00:32:06,018 >> GŁOŚNIK 2: Gdzie uses.blogcontroller się stworzyć post, 546 00:32:06,018 --> 00:32:07,560 co to kieruje nas do? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Tak. 548 00:32:08,310 --> 00:32:08,550 Tak. 549 00:32:08,550 --> 00:32:09,716 >> GŁOŚNIK 2: A co jest that-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Tak, spójrz, powiedz na przykład, trasa ta tutaj. 551 00:32:12,620 --> 00:32:17,190 Pierwsza część jest rzeczywista Adres URL, które użytkownik będzie udać. 552 00:32:17,190 --> 00:32:19,930 A ta tablica tutaj asocjacyjna, definiuje 553 00:32:19,930 --> 00:32:24,520 jaki chcemy mieć akt aplikacji w odpowiedzi na nią. 554 00:32:24,520 --> 00:32:29,090 Więc używa jest sterownik, Funkcja że 555 00:32:29,090 --> 00:32:31,610 chcesz zadzwonić, gdy użytkownik przechodzi do tego adresu URL. 556 00:32:31,610 --> 00:32:35,190 Więc viewPost tu był Funkcja że zdefiniowana wewnątrz 557 00:32:35,190 --> 00:32:36,100 z BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> GŁOŚNIK 2: Widzę. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: -SO tym my w rzeczywistości może wygenerować widok 560 00:32:39,368 --> 00:32:42,590 wykonać kilka obliczeń, interakcji z bazą danych SQL. 561 00:32:42,590 --> 00:32:43,560 >> GŁOŚNIK 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: A potem inne część, "jak" to pseudonim, którego używamy. 563 00:32:46,960 --> 00:32:50,714 Więc jeśli zauważymy, kiedy stworzyliśmy formularz, 564 00:32:50,714 --> 00:32:52,380 można zauważyć, że adres URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Więc zastępuje się rzeczywiste URL tak, że nie jesteśmy mocno 567 00:32:58,330 --> 00:33:02,940 kodujący je w tak możemy go zmienić raz, powiedzieć, gdybyśmy chcieli zmienić nazwę. 568 00:33:02,940 --> 00:33:06,055 Zamiast po ukośniku Nowy, chcemy zrobić jak, p 569 00:33:06,055 --> 00:33:09,490 slash nowy tylko do czyszczenia się adresów URL bitowych. 570 00:33:09,490 --> 00:33:14,740 Chcemy zmienić go w jednym miejscu, a niż we wszystkich innych plików. 571 00:33:14,740 --> 00:33:15,451 >> Cool. 572 00:33:15,451 --> 00:33:15,950 To dobrze. 573 00:33:15,950 --> 00:33:20,070 Więc teraz mamy bardzo Podstawową platformą blog. 574 00:33:20,070 --> 00:33:24,260 Prawdopodobnie chcesz dodać przycisk tak że rzeczywiście możemy tworzyć nowe posty. 575 00:33:24,260 --> 00:33:27,850 Więc jeśli przyjrzymy w Układ Mistrza, 576 00:33:27,850 --> 00:33:31,280 mamy sekcję nagłówka Prawo że niedawno zdefiniowane u góry. 577 00:33:31,280 --> 00:33:34,820 Więc możemy dodawać przyciski do góra cel. 578 00:33:34,820 --> 00:33:43,950 >> Więc jeśli idziemy do index.blade.php, faktycznie zrobić, to określenie tego, co dzieje się wewnątrz tutaj. 579 00:33:43,950 --> 00:33:46,970 W tej sekcji Nagłówek Prawo, co będziemy robić 580 00:33:46,970 --> 00:33:55,240 jest dodanie w przycisk, aby przejść do URL określony przez trasy nowego posta. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Wystarczy go oczyścić i uczynić jest ładna i wszystkie Bootstrap, 583 00:34:01,660 --> 00:34:04,630 mamy zamiar zrobić ten przycisk domyślny. 584 00:34:04,630 --> 00:34:07,794 Miejmy tylko sprawiają, że duża dla zabawy. 585 00:34:07,794 --> 00:34:09,969 >> A w środku, możemy umieścić jakiś tekst. 586 00:34:09,969 --> 00:34:14,030 Ale co Bootstrap zapewnia to glyphicons. 587 00:34:14,030 --> 00:34:17,840 Więc może faktycznie dodać, że ładne ołówek że widzieliśmy wcześniej. 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-ołówek. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Więc to pozwoli nam umieścić w ikonę zamiast tekstu. 593 00:34:35,340 --> 00:34:38,960 Teraz, jeśli przestaniesz, to określi tę sekcję. 594 00:34:38,960 --> 00:34:39,460 I, hej. 595 00:34:39,460 --> 00:34:45,000 Mamy ładny przycisk, który łączy nas bezpośrednio dodać stronę blogu. 596 00:34:45,000 --> 00:34:46,659 >> Mamy więc dość prosty blog. 597 00:34:46,659 --> 00:34:49,710 Możemy dodać rzeczy do niego. 598 00:34:49,710 --> 00:34:53,650 Ale to, co możemy się spodziewać z blogów komentuje. 599 00:34:53,650 --> 00:34:57,340 Więc to jest bardzo ważne dla nas mieć, powiedzieć, że jeśli ktoś odwiedza stronę internetową 600 00:34:57,340 --> 00:35:00,620 i naprawdę lubi stanowisko, że mogą uczestniczyć w dyskusjach 601 00:35:00,620 --> 00:35:03,100 z innymi ludźmi, którzy odwiedzają stronę. 602 00:35:03,100 --> 00:35:07,050 Tak więc mamy zamiar iść i tworzyć Nowa tabela bazy danych i nowy model 603 00:35:07,050 --> 00:35:12,220 tak, że możemy skojarzyć Komentarz z postami. 604 00:35:12,220 --> 00:35:17,370 >> Tak więc pierwszym krokiem, podobnie jak poprzednio, jest to, że musimy uruchomić migracji. 605 00:35:17,370 --> 00:35:21,982 Tak jak wcześniej, robimy php rzemieślnik migrować: zrobić. 606 00:35:21,982 --> 00:35:24,440 I mamy zamiar utworzyć nazywa create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Spowoduje to utworzenie pliku że ma nasz nowy migracji. 609 00:35:36,080 --> 00:35:40,170 I będziemy, jak wcześniej zdefiniować nową tabelę. 610 00:35:40,170 --> 00:35:42,773 Więc Schemat :: create Tabela nazywa komentarzy. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Funkcja ta tutaj. 613 00:35:48,430 --> 00:35:51,620 A w środku tabeli, co mamy zamiar zrobić, to po pierwsze, 614 00:35:51,620 --> 00:35:54,260 jak poprzednio, przypisać identyfikator. 615 00:35:54,260 --> 00:35:56,552 Zwiększa ID. 616 00:35:56,552 --> 00:36:05,440 >> Jedziemy, aby użytkownicy mogli skojarzyć ich nazwy ze szczególnym komentarza. 617 00:36:05,440 --> 00:36:10,080 My będziemy mieć pewne treści, które idzie w parze z tym, treści tekstu. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 A tu, co mamy zamiar to jest coś innego. 620 00:36:15,910 --> 00:36:23,620 Mamy zamiar stworzyć liczbę całkowitą to się nazywa post_id które 621 00:36:23,620 --> 00:36:32,100 będzie oznaczać, jakie stanowisko szczególności komentarz idzie z. 622 00:36:32,100 --> 00:36:35,410 >> Ponadto, jesteśmy rzeczywiście będzie ustawić klucz obcy w tej sprawie. 623 00:36:35,410 --> 00:36:37,750 Więc MySQL wymusić. 624 00:36:37,750 --> 00:36:39,840 Nie chcemy, aby przypisać numer komentarz 625 00:36:39,840 --> 00:36:44,440 5 odpowiedzieć 5000, jeśli nie ma miał 5000 postów na jej temat. 626 00:36:44,440 --> 00:36:50,240 Więc co tu robimy, robimy obcego post_id 627 00:36:50,240 --> 00:37:02,046 będzie wiązać się z Pole ID od słupków tabeli. 628 00:37:02,046 --> 00:37:05,900 A my rzeczywiście coś zrobić inny pomocny, jest onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Jeśli więc usunąć niektóre zakładać z bazy danych, 630 00:37:11,180 --> 00:37:15,507 że chcemy kaskadowo usuwa również w komentarzach. 631 00:37:15,507 --> 00:37:18,090 Bo to nie jest bardzo pomocne dla nas na komentarze dotyczące postów 632 00:37:18,090 --> 00:37:19,900 że nie istnieją. 633 00:37:19,900 --> 00:37:23,764 I wreszcie, jak wcześniej, jesteśmy zamiar ustawić znaczniki czasu na to. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 I tak jak poprzednio, będziemy mają być odwrotne migracja 636 00:37:33,510 --> 00:37:37,920 usunięcie tabeli komentarze. 637 00:37:37,920 --> 00:37:40,070 >> Więc teraz, jeśli wrócimy tu, będziemy 638 00:37:40,070 --> 00:37:43,110 do uruchomienia tej migracji, rzemieślnik migrują. 639 00:37:43,110 --> 00:37:46,400 A teraz zastosować ten migracji, które właśnie utworzyliśmy. 640 00:37:46,400 --> 00:37:50,080 Więc jeśli spojrzeć na phpMyAdmin, my, w rzeczywistości, teraz 641 00:37:50,080 --> 00:37:53,210 mieć tabeli komentarzy, które ma Struktura, że ​​po prostu określone. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Tak jak wcześniej, jesteśmy W celu utworzenia nowego modelu 644 00:37:59,610 --> 00:38:04,450 do abstrakcyjnego tabeli SQL że po prostu stworzył. 645 00:38:04,450 --> 00:38:05,450 >> Więc Dodaj nowy plik. 646 00:38:05,450 --> 00:38:06,908 Mamy zamiar nazwać Comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 I to jest rzeczywiście będzie dość proste z niewielką zmianą 649 00:38:15,490 --> 00:38:17,520 z tego, co mieliśmy wcześniej. 650 00:38:17,520 --> 00:38:22,790 Tak Klasa Komentarz rozciąga Wymowne. 651 00:38:22,790 --> 00:38:25,930 A co mamy zamiar do zrobienia jest zdefiniowanie 652 00:38:25,930 --> 00:38:31,360 Funkcja jest relacje z innymi modelami. 653 00:38:31,360 --> 00:38:39,250 Więc będziemy mieć funkcję pocztowy tu, że wraca ten związek. 654 00:38:39,250 --> 00:38:43,330 Więc jesteśmy określając, że to należy odpowiedzieć, 655 00:38:43,330 --> 00:38:49,200 mówiąc, że istnieje jedno stanowisko że ten komentarz należy. 656 00:38:49,200 --> 00:38:53,917 >> To rzeczywiście musi być Kapitał P dla modelu. 657 00:38:53,917 --> 00:38:56,500 A teraz po drugiej klapki boczne, musimy powiedzieć, że hej. 658 00:38:56,500 --> 00:38:58,160 Posty ma komentarzy. 659 00:38:58,160 --> 00:39:03,030 Tak więc to, co mamy zamiar zrobić, to zdefiniować komentarzy funkcję publiczną. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 I tu jest zwracana Ma to wiele komentarz. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Więc teraz magicznie, gdy mamy post, możemy uzyskać komentarzy atrybutów 664 00:39:22,010 --> 00:39:25,615 i będzie ona wypełnić ją informacje z bazy danych. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Więc rzeczywiście przejść i dodać nową funkcję do naszego pliku widoku 667 00:39:38,220 --> 00:39:43,600 tak, że możemy zarówno wyświetlacz i tworzenia komentarzy. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Tak więc mamy zamiar zdefiniować nowy rozdział. 670 00:39:56,865 --> 00:39:59,890 Miejmy tylko oddzielić ją w linii poziomej. 671 00:39:59,890 --> 00:40:04,065 Sekcja id = "komentarze". 672 00:40:04,065 --> 00:40:06,990 Co będziemy robić Oto, jak poprzednio, 673 00:40:06,990 --> 00:40:09,880 iterację wszystkich komentarzy. 674 00:40:09,880 --> 00:40:12,960 Tak naprawdę, jak robimy to, jak już wspomniałem, dość magiczne. 675 00:40:12,960 --> 00:40:14,440 >> Robimy komentować. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 A potem możemy to zrobić dla każdego Pętla nad każdym komentarzy. 678 00:40:22,710 --> 00:40:25,740 A co mamy zamiar zrobić, to div class komentarz, 679 00:40:25,740 --> 00:40:29,240 i jedziemy do rzeczywistości wydrukuj ten komentarz. 680 00:40:29,240 --> 00:40:34,150 Więc wyświetlić, że hej, komentarz name-- osoby 681 00:40:34,150 --> 00:40:38,080 kto pisał ten comment-- mówi dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Mamy zamiar umieścić to w bloku cytat, tak aby wyglądał ładnie. 683 00:40:41,240 --> 00:40:46,470 A potem komentować zawartości bloku cytatu. 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 Więc teraz to będzie pętli przez wszystkie komentarze 687 00:40:53,100 --> 00:40:56,500 który jest związany z każdym ze słupków 688 00:40:56,500 --> 00:41:00,960 i wyświetlić każdy z tych uwag. 689 00:41:00,960 --> 00:41:05,120 Mam zamiar dodać kolejny rozdział w dół tu, co pozwala nam dodać komentarz. 690 00:41:05,120 --> 00:41:07,400 Więc h3 klasy. 691 00:41:07,400 --> 00:41:09,580 Umieścić tytuł tutaj. 692 00:41:09,580 --> 00:41:10,934 Dodaj komentarz. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 I mamy zamiar zdefiniować nową formę. 695 00:41:15,700 --> 00:41:18,730 >> Tak jak wcześniej, jesteśmy zrobić formularz działania. 696 00:41:18,730 --> 00:41:22,740 I tu, nowa akcja jest, że jesteśmy będzie zdefiniować nowy kontroler, który 697 00:41:22,740 --> 00:41:26,770 pozwala nam odpowiedzieć na posta wnioski o tworzenie komentarzy. 698 00:41:26,770 --> 00:41:33,365 Więc createComment URL :: trasy. 699 00:41:33,365 --> 00:41:37,730 Mam zamiar przekazać w parametrze tutaj. 700 00:41:37,730 --> 00:41:40,380 ID stanowisku, że tworzymy komentarza. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 A następnie metoda ta Formularz będzie po. 703 00:41:50,280 --> 00:41:57,240 >> Teraz mamy zamiar dodać dwa pola, grupa formą. 704 00:41:57,240 --> 00:42:04,670 To będzie wejście z Name "Nazwa" i class = "form-control", 705 00:42:04,670 --> 00:42:14,250 type = "text" oraz z zastępczy = "Twoje imię". 706 00:42:14,250 --> 00:42:19,380 Będziemy również zdefiniować innego pola formularza, 707 00:42:19,380 --> 00:42:22,970 będzie tekst Obszar jak mieliśmy wcześniej. 708 00:42:22,970 --> 00:42:25,480 Podobnie jak poprzednio, nazywają go treść. 709 00:42:25,480 --> 00:42:31,160 Class = "forma sterowania." 710 00:42:31,160 --> 00:42:41,660 Placeholder = "Wpisz tutaj." 711 00:42:41,660 --> 00:42:44,100 >> I tak, że może faktycznie przedstawia go, 712 00:42:44,100 --> 00:42:55,740 przedstawić rodzaj i class = "btn btn-podstawowej." 713 00:42:55,740 --> 00:42:57,005 Zamknij formularz. 714 00:42:57,005 --> 00:42:59,010 Zamknij tę akcję. 715 00:42:59,010 --> 00:43:06,580 Więc teraz, jeśli odświeżyć stronę gdzie mamy, powiedzmy, konkretny post. 716 00:43:06,580 --> 00:43:10,310 Musimy ponownie uruchomić serwer. 717 00:43:10,310 --> 00:43:12,340 PHP rzemieślnik służyć. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Reboot to. 720 00:43:18,334 --> 00:43:19,500 Musimy określić trasy. 721 00:43:19,500 --> 00:43:25,090 Ale teraz, po prostu wziąć to tak, że rzeczywiście możemy pokazać, 722 00:43:25,090 --> 00:43:28,750 co strona wygląda, a następnie będziemy rzeczywiście stworzyć tę trasę. 723 00:43:28,750 --> 00:43:29,250 Więc, hej. 724 00:43:29,250 --> 00:43:37,080 Mamy tę nową formę tutaj tak, że możemy stworzyć komentarzy. 725 00:43:37,080 --> 00:43:39,950 Więc właściwie zdefiniować Funkcja w kontrolerze 726 00:43:39,950 --> 00:43:43,020 tak, że możemy dodawać komentarze. 727 00:43:43,020 --> 00:43:43,650 Wróćmy. 728 00:43:43,650 --> 00:43:48,420 Oraz w blogcontroller.php, co będziemy robić 729 00:43:48,420 --> 00:43:51,620 jest utworzyć nową funkcję nazywa stworzyć komentarz. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Public function createComment. 732 00:43:57,040 --> 00:44:00,130 Ten będzie miał singiel parametr ID stanowisk 733 00:44:00,130 --> 00:44:02,280 że mamy do komentowania. 734 00:44:02,280 --> 00:44:04,790 I tak jak wcześniej, jesteśmy będzie najpierw uzyskać post. 735 00:44:04,790 --> 00:44:10,790 Tak więc zakładać, findOrfail id. 736 00:44:10,790 --> 00:44:15,020 Następnie jedziemy utworzyć nowy komentarz. 737 00:44:15,020 --> 00:44:18,880 Więc komentarz = nowy komentarz. 738 00:44:18,880 --> 00:44:26,820 Komentarz name = Wejście :: uzyskać nazwę. 739 00:44:26,820 --> 00:44:39,420 Treść komentarza = sama nowa linia w przerwach Wejście :: uzyskać zawartość. 740 00:44:39,420 --> 00:44:43,460 >> I wreszcie, będziemy musieli skojarzyć ten komentarz na stanowisku. 741 00:44:43,460 --> 00:44:47,230 Tak więc mamy zamiar używać ta funkcja, komentarze, 742 00:44:47,230 --> 00:44:50,260 która pozwala nam zapisać ten związek. 743 00:44:50,260 --> 00:44:54,780 Więc teraz będzie miał ten komentarz automatycznie ID postu. 744 00:44:54,780 --> 00:44:57,640 Możemy również ustawić go ręcznie, ale jest 745 00:44:57,640 --> 00:45:02,490 bardziej czytelny, jak daleko jako funkcja przechodzi. 746 00:45:02,490 --> 00:45:05,860 I po wykonujemy tego, co chcemy zrobić, 747 00:45:05,860 --> 00:45:10,840 jest przekierowanie użytkownika do Trasa określone przez viewPost 748 00:45:10,840 --> 00:45:16,010 z tablicy z parametr ID postu. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> I teraz tak, że rzeczywiście funkcje, musimy zdefiniować tę trasę. 751 00:45:24,660 --> 00:45:27,126 Droga :: postu. 752 00:45:27,126 --> 00:45:32,800 A teraz mamy zamiar nazwać slash po slash ID komentarz. 753 00:45:32,800 --> 00:45:36,725 Array wykorzystuje nową funkcję że po prostu stworzył. 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 jak createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Wielki. 759 00:45:50,120 --> 00:45:56,150 >> Więc teraz mam nadzieję, że jeśli odświeżyć stronę i dodać w komentarzu, powiedzmy, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Mam nadzieję, że to działa." 762 00:46:03,920 --> 00:46:05,216 Prześlij. 763 00:46:05,216 --> 00:46:09,050 My w rzeczywistości mieć komentarz na tym blogu. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Cool. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Więc teraz mamy dość funkcjonalna blogu. 768 00:46:21,430 --> 00:46:23,180 Jesteśmy po prostu się dodać kilka poprawek tak 769 00:46:23,180 --> 00:46:29,090 że mamy jedne bardziej użyteczne Informacje na tych stanowiskach. 770 00:46:29,090 --> 00:46:32,780 >> Tak więc, jeśli wrócimy do przednia strona, nie mamy poczucia 771 00:46:32,780 --> 00:46:38,790 ilu komentarze są na każdym z tych stanowisk. 772 00:46:38,790 --> 00:46:41,340 Więc co mamy rzeczywiście będzie Wystarczy, wewnątrz naszego modelu, 773 00:46:41,340 --> 00:46:51,250 zdefiniować funkcję pomocnika, który pozwala nam określić liczbę komentarzy 774 00:46:51,250 --> 00:46:53,020 że go z konkretnym stanowisku. 775 00:46:53,020 --> 00:46:56,050 Tak więc mamy zamiar stworzyć Funkcja pomocnika. 776 00:46:56,050 --> 00:46:58,020 >> Public function. 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 Tak więc ciąg znaków, który określa liczbę komentarzy, które go wraz z nim. 780 00:47:07,180 --> 00:47:12,850 A co mamy zamiar zrobić, to powiedzieć, num = liczyć, że to komentarze. 781 00:47:12,850 --> 00:47:15,150 Więc będziemy liczyć liczba komentarzy. 782 00:47:15,150 --> 00:47:22,900 Jeśli ta liczba jest równa 1, jesteśmy po prostu się do powrotu 1 komentarz. 783 00:47:22,900 --> 00:47:28,890 I wtedy inaczej, chcemy wrócić połączeniem num i komentarzy, 784 00:47:28,890 --> 00:47:31,890 więc mamy pluralizacji prawidłowe. 785 00:47:31,890 --> 00:47:33,380 Wystarczy zrobić to apostrof. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Jeden komentarz. 788 00:47:37,640 --> 00:47:41,140 >> A teraz możemy korzystać z tej funkcji bezpośrednio wewnątrz naszego widzenia. 789 00:47:41,140 --> 00:47:44,510 Tak więc, jeśli wrócimy do częściowe postów, które utworzone, 790 00:47:44,510 --> 00:47:49,370 teraz chcemy rzeczywiście wyświetla liczbę komentarzy. 791 00:47:49,370 --> 00:47:52,660 Więc co możemy zrobić, to po, korzystać z tej funkcji 792 00:47:52,660 --> 00:47:57,230 że po prostu stworzone do wyświetla liczbę komentarzy. 793 00:47:57,230 --> 00:48:00,440 Więc jeśli teraz go odświeżyć, jest w rzeczywistości wyświetlacz 794 00:48:00,440 --> 00:48:02,240 Numer komentarze które go wraz z nim. 795 00:48:02,240 --> 00:48:05,320 >> Jeśli chcemy być wyobraźnia, jeśli Ciebie rzeczywiście spojrzeć na kod dystrybucji, 796 00:48:05,320 --> 00:48:07,800 faktycznie możemy połączyć to do komentarzy. 797 00:48:07,800 --> 00:48:17,040 Jeśli pamiętacie, że zdefiniowane w zobaczyć, że to ma komentarzy punkt ID. 798 00:48:17,040 --> 00:48:22,460 Więc jeśli naprawdę chce połączyć bezpośrednio do sekcji komentarzy, co 799 00:48:22,460 --> 00:48:36,000 zrobimy tu jest href URL viewPost trasy. 800 00:48:36,000 --> 00:48:40,550 Przejść array ID po ID. 801 00:48:40,550 --> 00:48:46,140 A potem chcemy, aby przejść do specjalnie sekcji komentarzy. 802 00:48:46,140 --> 00:48:49,900 >> Tutaj niech zamknąć tagu. 803 00:48:49,900 --> 00:48:52,950 Więc teraz, jeśli odświeżyć tę Strona, klikamy na ten temat. 804 00:48:52,950 --> 00:48:54,700 Pojedziemy bezpośrednio do Sekcja komentarzy. 805 00:48:54,700 --> 00:48:57,580 Gdybyśmy mieli dłuższy słupek, można rzeczywiście zobaczyć to odbicie w dół. 806 00:48:57,580 --> 00:49:02,668 Jednak można zauważyć, że jest to nie na górnej stronie. 807 00:49:02,668 --> 00:49:04,090 Cool. 808 00:49:04,090 --> 00:49:04,600 Wielki. 809 00:49:04,600 --> 00:49:08,582 Więc to jest bardzo prosta Przykładem czegoś prostego 810 00:49:08,582 --> 00:49:09,790 że można zrobić z Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Ale można tutaj odnotować, że zrobiliśmy wiele rzeczy 812 00:49:13,230 --> 00:49:16,200 z dość małej ilości kodu. 813 00:49:16,200 --> 00:49:19,420 Laravel pozwala nam na Zapytań SQL za kulisami. 814 00:49:19,420 --> 00:49:21,960 Robi sanitarnych dla nas za kulisy. 815 00:49:21,960 --> 00:49:25,940 Pozwala nam na te relacje bardzo łatwe bez nas potrzebuje 816 00:49:25,940 --> 00:49:33,350 robić żadnych SQL przyłączyć oświadczeń łączyć komentarzy z jakich stanowiskach. 817 00:49:33,350 --> 00:49:36,480 Pozwala nam to zrobić dziedziczenie szablonów 818 00:49:36,480 --> 00:49:43,780 tak, że możemy zdefiniować te miejsca gniazdowania Pliki więc nie będziemy powtarzać się, 819 00:49:43,780 --> 00:49:47,020 tak jak wtedy, gdy mieliśmy, że wyświetlanie blogach 820 00:49:47,020 --> 00:49:50,770 że nie mamy do skopiować i wkleić kod. 821 00:49:50,770 --> 00:49:55,450 >> I tutaj można budować coraz bardziej skomplikowanych aplikacji. 822 00:49:55,450 --> 00:49:58,370 Można sobie wyobrazić, jeśli chciał wdrożyć logowania, 823 00:49:58,370 --> 00:50:05,532 moglibyśmy powiedzieć, przynieść osobie trzeciej ramy, która pozwala nam robić. 824 00:50:05,532 --> 00:50:07,490 Istnieje kilka z nich które są naprawdę, naprawdę 825 00:50:07,490 --> 00:50:09,970 wielka, że ​​może zrobić podobne, odzyskiwania hasła. 826 00:50:09,970 --> 00:50:14,450 I będzie to wysłać do zresetować hasło e-mail. 827 00:50:14,450 --> 00:50:18,260 Możemy realizować uprawnienia tak, że można stworzyć post, 828 00:50:18,260 --> 00:50:20,350 ale ktoś inny nie może go edytować. 829 00:50:20,350 --> 00:50:24,610 Możemy realizować Funkcjonalność usunąć posty. 830 00:50:24,610 --> 00:50:28,160 >> Ale widać tutaj, że mamy dość wiele wszystkie elementarne składniki 831 00:50:28,160 --> 00:50:31,640 zbudować niektóre naprawdę, naprawdę, dynamiczne i ekscytujące aplikacje webowe. 832 00:50:31,640 --> 00:50:34,035 Więc z tym, myślę, że jesteśmy dobrzy. 833 00:50:34,035 --> 00:50:35,720 Czy macie jakieś pytania? 834 00:50:35,720 --> 00:50:36,220 Tak? 835 00:50:36,220 --> 00:50:38,090 >> GŁOŚNIK 3: Jak Ci się uzyskać statyczny? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: statyczny. 837 00:50:39,256 --> 00:50:45,520 Więc widziałem wcześniej, kiedy mieliśmy To właśnie tutaj, w tym treść układ, 838 00:50:45,520 --> 00:50:49,625 Widok make, mieliśmy tego bez tej tablicy później. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, mieliśmy tego tylko jako pliku statycznego. 841 00:50:59,152 --> 00:51:00,860 Jeśli więc nie przechodzą wszystko razem z nim, 842 00:51:00,860 --> 00:51:03,340 będzie to po prostu renderowania HTML bezpośrednio. 843 00:51:03,340 --> 00:51:09,240 Ale jeśli mijamy w tym stowarzyszeniowej szereg stanowisk, które jest dynamicznie 844 00:51:09,240 --> 00:51:12,950 pobierane z bazy danych, to może sprawić, że strona dynamiczna. 845 00:51:12,950 --> 00:51:13,450 Cool. 846 00:51:13,450 --> 00:51:14,830 Jeszcze jakieś pytania? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 GŁOŚNIK 3: Jak można porównać Laravel się być może niektóre inne opcje? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Jasne. 850 00:51:20,525 --> 00:51:21,025 Tak. 851 00:51:21,025 --> 00:51:23,430 Więc Laravel is-- to wielka question-- 852 00:51:23,430 --> 00:51:26,190 jedna z wielu opcji dotyczących ram internetowych. 853 00:51:26,190 --> 00:51:31,160 Więc Ruby on Rails jest jeden, który jest popularny. 854 00:51:31,160 --> 00:51:34,590 Uważam, Twitter kiedyś realizowane z Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Myślę, że już od włączony. 856 00:51:37,600 --> 00:51:40,780 Jest jeszcze jeden o nazwie FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Więc Ruby on Rails używa języka Ruby i realizuje wiele rzeczy MVC 858 00:51:46,120 --> 00:51:48,200 że widzimy tutaj. 859 00:51:48,200 --> 00:51:52,320 FuelPHP jest kolejnym frameworkiem. 860 00:51:52,320 --> 00:51:54,490 Django to jeden z moich ulubionych. 861 00:51:54,490 --> 00:51:57,010 To ramy internetowej dla Pythona. 862 00:51:57,010 --> 00:52:01,270 Więc można napisać aplikację w Pythonie. 863 00:52:01,270 --> 00:52:03,760 Więc jest mnóstwo tych opcji. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, myślę, przez i duża jest moja ulubiona prawo 865 00:52:06,170 --> 00:52:08,232 teraz dla PHP, tylko dlatego, komponentów 866 00:52:08,232 --> 00:52:09,440 że rozmawialiśmy wcześniej. 867 00:52:09,440 --> 00:52:11,910 Za Kompozytor włączony. 868 00:52:11,910 --> 00:52:15,750 Obejmuje on naprawdę, naprawdę wyraziste System ORM. 869 00:52:15,750 --> 00:52:18,800 Również ma naprawdę niesamowite templating Język, który kilka innych 870 00:52:18,800 --> 00:52:20,630 po prostu nie dają. 871 00:52:20,630 --> 00:52:21,400 I migracje. 872 00:52:21,400 --> 00:52:23,432 Migracje są niesamowite, jak dobrze. 873 00:52:23,432 --> 00:52:24,860 Fajne? 874 00:52:24,860 --> 00:52:25,390 Niesamowite. 875 00:52:25,390 --> 00:52:27,560 Cóż, dzięki bardzo za oglądania tego seminarium, 876 00:52:27,560 --> 00:52:30,650 Powodzenia na swoich ostatnich projektów. 877 00:52:30,650 --> 00:52:31,616