1 00:00:00,000 --> 00:00:02,538 >> [Грає музика] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ЕРІК Оуян: Гей, все. 4 00:00:12,390 --> 00:00:13,580 Ласкаво просимо. 5 00:00:13,580 --> 00:00:16,860 Ця будівля Dynamic Веб-додатки з Laravel. 6 00:00:16,860 --> 00:00:18,290 Мене звуть Ерік Оуян. 7 00:00:18,290 --> 00:00:23,860 Я студент-другокурсник вивчення соціальних досліджень з вторинним з інформатики, 8 00:00:23,860 --> 00:00:27,290 і я живу в Адамс Будинок тут, в Гарварді. 9 00:00:27,290 --> 00:00:33,340 >> Так Laravel, на його більшості основних, це фреймворк для веб-додаток MVC. 10 00:00:33,340 --> 00:00:38,265 Так подобається, що ви, хлопці, є робили з CS50 фінансів, 11 00:00:38,265 --> 00:00:42,480 Laravel є основою, яка дозволяє створювати динамічні веб-додатки. 12 00:00:42,480 --> 00:00:47,710 Таким чином, ви можете думати про це в якомусь сенсі як розширення типу матеріалу 13 00:00:47,710 --> 00:00:50,470 Ви робили в CS50 Фінанси, але система, що є 14 00:00:50,470 --> 00:00:55,890 багато надійнішими, багато більш елегантний в деякому розумінні, 15 00:00:55,890 --> 00:00:57,870 і надає багато Функціональність для вас 16 00:00:57,870 --> 00:01:03,060 побудувати досить складний веб-додатків. 17 00:01:03,060 --> 00:01:05,010 Так що давайте пройти через деякі з ключових особливостей, 18 00:01:05,010 --> 00:01:09,550 і тоді ми будемо занурюватися в Приклад побудови блог 19 00:01:09,550 --> 00:01:12,500 Додаток з Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Таким чином, одна з перших речей, які відрізняє його від MVC виду робіт 21 00:01:16,700 --> 00:01:22,100 що ви робили з CS50 це включає в себе двигун ОРЗ. 22 00:01:22,100 --> 00:01:27,410 Так ORM розшифровується об'єкта реляційного відображення. 23 00:01:27,410 --> 00:01:31,080 Так що це дозволяє будувати шар абстракції 24 00:01:31,080 --> 00:01:35,230 між базою даних і контролери. 25 00:01:35,230 --> 00:01:39,150 Так, на відміну від CS50 фінансів, на якому Ви безпосередньо виконувати запити, 26 00:01:39,150 --> 00:01:44,790 ORM шар дозволяє абстрактний, що далеко і створити 27 00:01:44,790 --> 00:01:48,085 моделі, які є більш потужними, ніж Ви можете прямо із запитами SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Інша справа, що насправді корисної успадковані шаблони. 30 00:01:53,510 --> 00:01:58,990 Таким чином, ви побачите, в CS50 фінансів, ви в кінцевому підсумку переписування багато речей, 31 00:01:58,990 --> 00:02:03,150 де місця, які ви могли б потенційно використовувати речі, ви не в змозі. 32 00:02:03,150 --> 00:02:08,539 Так ось в Laravel, ви можете використовувати те, що Відомо, як лезо шаблону двигуна 33 00:02:08,539 --> 00:02:10,530 створити майстер-план. 34 00:02:10,530 --> 00:02:15,840 І звідти, ви можете успадковувати так що на південь шаблони можуть насправді 35 00:02:15,840 --> 00:02:21,210 включають в себе елементи, що входять в що більшою базового шаблону. 36 00:02:21,210 --> 00:02:21,810 >> Міграція. 37 00:02:21,810 --> 00:02:29,010 Так що це досить стандартні особливості на більшість сучасні рамки веб-додатків. 38 00:02:29,010 --> 00:02:32,710 Так що це дозволяє представляти зміни схеми бази даних в коді. 39 00:02:32,710 --> 00:02:39,200 Так що без збирався сказати, PhpMyAdmin, Ви можете фактично створити ці міграції 40 00:02:39,200 --> 00:02:44,660 де ви уявляєте бази даних Зміни схеми в код. 41 00:02:44,660 --> 00:02:48,070 І це дозволяє to-- особливо Якщо у вас є кілька людей, які працюють 42 00:02:48,070 --> 00:02:52,650 на тому ж веб application-- відслідковувати ці зміни, 43 00:02:52,650 --> 00:02:55,380 кажуть у GitHub, або який-небудь інший репозиторій. 44 00:02:55,380 --> 00:03:00,880 >> Так що це дуже корисно і знижує необхідність 45 00:03:00,880 --> 00:03:04,580 щоб, скажімо, пройти навколо багато SQL звалищ. 46 00:03:04,580 --> 00:03:07,140 І, нарешті, Композитор є то дуже, дуже корисно 47 00:03:07,140 --> 00:03:09,840 що дозволяє використовувати інші Код народний зробити дивовижні речі. 48 00:03:09,840 --> 00:03:14,020 Так Laravel структурований як кілька композитор пакети. 49 00:03:14,020 --> 00:03:17,870 Так сказати, якщо ви хочете, щоб принести в пакет перевірки автентичності 50 00:03:17,870 --> 00:03:23,440 або якщо ви хочете, щоб принести в деяких Сортувати скрипта генератора або адміністратором 51 00:03:23,440 --> 00:03:26,910 інтерфейс, ви можете підключити і грати ці компоненти з композитором. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Так що давайте почнемо. 54 00:03:31,570 --> 00:03:35,185 Будь-які питання від вас Хлопці перш ніж ми почнемо? 55 00:03:35,185 --> 00:03:36,500 Ніяких питань? 56 00:03:36,500 --> 00:03:37,490 Круто. 57 00:03:37,490 --> 00:03:39,990 Таким чином, перший крок установка Composer. 58 00:03:39,990 --> 00:03:43,590 Так Композитор дозволяє управляти цими залежностями, 59 00:03:43,590 --> 00:03:47,770 будь то база Laravel або який-небудь інший додатковий третя особа. 60 00:03:47,770 --> 00:03:50,400 Перша команда дозволяє Ви можете завантажити композитора, 61 00:03:50,400 --> 00:03:55,890 і друга команда дозволяє перемістити його у вашій локальній теці бін 62 00:03:55,890 --> 00:04:01,340 так що ви можете запускати Composer безпосередньо через термінал. 63 00:04:01,340 --> 00:04:05,405 >> Після цього, йти вперед і створити новий проект Laravel. 64 00:04:05,405 --> 00:04:07,280 Ми насправді відбувається в використовувати деякі приклад коду 65 00:04:07,280 --> 00:04:10,760 що я зібрав створити цей блог. 66 00:04:10,760 --> 00:04:14,420 Але якщо ви починаєте з подряпина, ви повинні використовувати цю команду 67 00:04:14,420 --> 00:04:18,160 тут, композитор створити-проект, Laravel скоротити Laravel, а потім 68 00:04:18,160 --> 00:04:19,940 Назва Вашого проекту. 69 00:04:19,940 --> 00:04:22,275 І що буде включати в себе всі код розподілу 70 00:04:22,275 --> 00:04:23,733 для початку новий проект Laravel. 71 00:04:23,733 --> 00:04:28,870 Таким чином, для ваших CS50 закінчених проектів, ви будете ймовірно, захочете використовувати цю команду. 72 00:04:28,870 --> 00:04:31,210 >> Але ми збираємося почати з цього. 73 00:04:31,210 --> 00:04:34,630 Тому, як тільки ви зробили що ви збираєтеся отримати 74 00:04:34,630 --> 00:04:40,190 досить обширна номер файлів в blog50. 75 00:04:40,190 --> 00:04:43,840 Так що давайте просто пройти деякі з цих компонентів. 76 00:04:43,840 --> 00:04:49,060 Ви помітите, на цьому маршруті Каталог, є папка програми. 77 00:04:49,060 --> 00:04:52,960 Всередині папки програми, є пару корисних папки. 78 00:04:52,960 --> 00:04:56,330 Слід зазначити, щоб почати з це папка Config. 79 00:04:56,330 --> 00:04:59,210 Так це створює як веб-додаток 80 00:04:59,210 --> 00:05:04,350 буде, скажімо, аутентифікації користувачів або грошові речі або підключитися до бази даних. 81 00:05:04,350 --> 00:05:06,400 >> І те, що насправді корисно в тому, що Laravel 82 00:05:06,400 --> 00:05:09,130 дозволяє налаштувати різні середовищах розробки. 83 00:05:09,130 --> 00:05:12,090 Отже, що ми зробили тут, якщо ми йдемо під локальною папці, 84 00:05:12,090 --> 00:05:14,720 є файл database.php. 85 00:05:14,720 --> 00:05:18,320 І ви помітите, тут ми встановити з'єднання MySQL, що 86 00:05:18,320 --> 00:05:22,230 дозволяє людям з'єднатися до сервера MySQL, що це 87 00:05:22,230 --> 00:05:24,310 безпосередньо на приладі CS50. 88 00:05:24,310 --> 00:05:26,980 І ми підключенні до бази даних що я створив називається Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Отже, давайте насправді йти вперед і запустити робочу версію цього, 91 00:05:37,085 --> 00:05:39,710 тільки, щоб отримати відчуття того, що додаток, який ми будуємо 92 00:05:39,710 --> 00:05:41,390 виглядає. 93 00:05:41,390 --> 00:05:46,150 Так що у мене копію це Blog50 завершена. 94 00:05:46,150 --> 00:05:51,910 Так Laravel насправді має вбудований сервер 95 00:05:51,910 --> 00:05:53,910 що ви можете запустити безпосередньо з командного рядка. 96 00:05:53,910 --> 00:05:56,900 Так що це схоже на PSet раніше, коли ви насправді 97 00:05:56,900 --> 00:06:00,580 побудувати свій власний сервер в С. Таким чином, вони мають одну побудований в так 98 00:06:00,580 --> 00:06:04,010 що ви можете запустити ваші програми Laravel безпосередньо з командного рядка. 99 00:06:04,010 --> 00:06:11,650 >> Так що, якщо ми робимо PHP ремісника служити, це почне сервер розробки 100 00:06:11,650 --> 00:06:13,880 порт 8000. 101 00:06:13,880 --> 00:06:18,250 Так що, якщо ми йдемо в локальному хості 8000, ви помітите, що, гей. 102 00:06:18,250 --> 00:06:20,800 У нас є блог і працює. 103 00:06:20,800 --> 00:06:25,090 Так Laravel тут генерації Головна сторінка нашого блогу. 104 00:06:25,090 --> 00:06:26,350 Дуже простий додаток. 105 00:06:26,350 --> 00:06:28,610 Але є пара дійсно корисних функцій 106 00:06:28,610 --> 00:06:31,346 що вона забезпечує під капотом. 107 00:06:31,346 --> 00:06:33,680 >> Так застосування блогу просто. 108 00:06:33,680 --> 00:06:36,430 Якби ми хотіли створити пост, ми можемо натиснути на цю кнопку. 109 00:06:36,430 --> 00:06:40,470 Ми можемо сказати: "Ей, все. 110 00:06:40,470 --> 00:06:44,530 Це дуже весело Семінар ", наприклад. 111 00:06:44,530 --> 00:06:46,560 І написати щось тут. 112 00:06:46,560 --> 00:06:48,180 Текст тут. 113 00:06:48,180 --> 00:06:51,327 Якщо тиснемо Submit, ви будете зверніть увагу, що наш новий блог 114 00:06:51,327 --> 00:06:53,410 Повідомлення було додано Головна сторінка блогу. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Якщо ми повернемося сюди, ви помітите, що були деякі зауваження, вже 117 00:06:59,970 --> 00:07:01,160 на блозі. 118 00:07:01,160 --> 00:07:03,630 Так що, якщо ми прокручуємо вниз, ви будете зверніть увагу, що Джонатан Тан каже 119 00:07:03,630 --> 00:07:08,020 що він був дуже заінтригований цієї посади. 120 00:07:08,020 --> 00:07:11,570 >> Таким чином, ми підемо в те, як об'єкт реляційного відображення дозволяє 121 00:07:11,570 --> 00:07:16,668 Ви, щоб зробити ці відносини в досить плавний спосіб, як добре. 122 00:07:16,668 --> 00:07:17,660 Круто. 123 00:07:17,660 --> 00:07:20,290 Будь-які питання про функціональність що ми збираємося будувати? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Круто. 126 00:07:23,840 --> 00:07:28,170 Отже, давайте почнемо з дійсно створення таблиць бази даних. 127 00:07:28,170 --> 00:07:33,190 >> Так Нагадаємо, що в CS50 фінансів, вам зібрати стіл для користувачів 128 00:07:33,190 --> 00:07:37,100 а також для акції у вашому портфелі. 129 00:07:37,100 --> 00:07:41,040 Так як ми вже згадували раніше, що ми використовуємо в Laravel 130 00:07:41,040 --> 00:07:43,090 щось відомо, як міграцій. 131 00:07:43,090 --> 00:07:48,570 Так що, якщо ми повернемося до Розподіл код тут, 132 00:07:48,570 --> 00:07:51,790 Перша команда, яка корисно, що Laravel надає вам 133 00:07:51,790 --> 00:07:54,240 це команда міграції. 134 00:07:54,240 --> 00:07:59,220 Таким чином, ми можемо зробити PHP, мігрують майстрових: зробити. 135 00:07:59,220 --> 00:08:01,760 Так що це дозволяє нам створити міграції. 136 00:08:01,760 --> 00:08:03,710 >> І тоді ми захочемо створити міграції 137 00:08:03,710 --> 00:08:07,050 називається create_posts_table, яка збирається 138 00:08:07,050 --> 00:08:11,521 щоб бути там, де ми збираємося бути зберігання нашому блозі. 139 00:08:11,521 --> 00:08:14,690 І ви помітите, тут, що він працює через код, який насправді 140 00:08:14,690 --> 00:08:17,580 генерує файл з штамп часу на це. 141 00:08:17,580 --> 00:08:22,260 Так що, якщо ми підемо і подивимося на бази даних, ми помітили при міграції 142 00:08:22,260 --> 00:08:24,830 що він створений Порожній файл для нас, які 143 00:08:24,830 --> 00:08:30,100 має шаблонний код з назвою що ми вказали, створювати повідомлення стіл. 144 00:08:30,100 --> 00:08:31,670 >> І воно має дві функції в ній. 145 00:08:31,670 --> 00:08:40,539 До чого ми хочемо працювати, коли міграція застосовується до бази даних. 146 00:08:40,539 --> 00:08:46,380 І вниз, що ми збираємося робити коли ми хочемо повернути назад міграцію. 147 00:08:46,380 --> 00:08:49,890 Так от давайте почнемо написання цієї міграції. 148 00:08:49,890 --> 00:08:55,480 Так що корисно клас в Laravel називається схеми. 149 00:08:55,480 --> 00:08:57,910 >> Отже, ми збираємося запустити схеми :: створити. 150 00:08:57,910 --> 00:09:01,080 І ми збираємося створити таблиця з ім'ям повідомлення. 151 00:09:01,080 --> 00:09:05,980 І тут ми застосовуємо це, використовуючи функцію. 152 00:09:05,980 --> 00:09:11,010 І в тут, ми йдемо насправді визначити зміст нашій таблиці. 153 00:09:11,010 --> 00:09:14,860 Ми збираємося створити ID, що автоінкрементне. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Крім того, ми збираємося щоб створити поле, що 156 00:09:24,350 --> 00:09:27,060 представляє заголовок нашого блогу. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Ми також збираємося створити поле для зберігання текст нашого блогу. 159 00:09:36,950 --> 00:09:40,600 І, нарешті, ми збираємося зберігати деякі мітки 160 00:09:40,600 --> 00:09:44,690 коли наш пост був створений і коли він був оновлений. 161 00:09:44,690 --> 00:09:46,240 І вниз, це досить просто. 162 00:09:46,240 --> 00:09:53,974 Все, що ми хочемо зробити, це падіння таблиця, яку ми створили. 163 00:09:53,974 --> 00:09:54,930 >> Відмінно. 164 00:09:54,930 --> 00:09:55,850 Є питання? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Так що тепер, якщо ми йдемо вперед і-- Насправді, локальний хост, 167 00:10:07,110 --> 00:10:09,640 дозвольте мені видалити, що було раніше. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Перейти до баз даних. 170 00:10:15,190 --> 00:10:17,640 Я збираюся видалити, що було раніше. 171 00:10:17,640 --> 00:10:22,870 Залиште це і створити Нова база даних Blog50. 172 00:10:22,870 --> 00:10:24,930 Так що тепер чарівний частина тут, що ми 173 00:10:24,930 --> 00:10:28,760 може застосовувати ці міграції безпосередньо до бази даних за допомогою командного рядка 174 00:10:28,760 --> 00:10:29,290 інструмент. 175 00:10:29,290 --> 00:10:35,100 Так що, якщо ми робимо PHP майстрових, мігрують, Ви помітите, що, гей. 176 00:10:35,100 --> 00:10:38,320 Він створений таблицю міграції, які ми поглянемо на в небагато, 177 00:10:38,320 --> 00:10:40,540 і він застосовується цей перший міграції. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Так ми дивимося на Blog50, ви помітите, що він створений дві таблиці для нас. 180 00:10:48,920 --> 00:10:50,300 По-перше це таблиця міграції. 181 00:10:50,300 --> 00:10:54,130 Так що, якщо ми переглянути це, ви помітите, що Ця таблиця є досить простий. 182 00:10:54,130 --> 00:10:55,490 Це просто сказав, що, гей. 183 00:10:55,490 --> 00:10:58,960 Ми застосували цей міграції. 184 00:10:58,960 --> 00:11:01,470 Ми повернемося і подивимося на посаді. 185 00:11:01,470 --> 00:11:05,720 Ви помітите, що структура саме те, що ми просили його. 186 00:11:05,720 --> 00:11:07,350 У нас є автоінкрементний ID. 187 00:11:07,350 --> 00:11:10,450 У нас є рядок для зберігання Назва і текстове поле 188 00:11:10,450 --> 00:11:11,450 для зберігання контенту. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Відмінно. 191 00:11:14,706 --> 00:11:15,560 Круто. 192 00:11:15,560 --> 00:11:21,626 Будь-які питання про міграцію робота, як ми можемо застосовувати їх? 193 00:11:21,626 --> 00:11:22,126 Ні? 194 00:11:22,126 --> 00:11:23,600 Круто. 195 00:11:23,600 --> 00:11:26,630 Так що тепер ми збираємося, щоб йти вперед а насправді створити модель. 196 00:11:26,630 --> 00:11:33,100 Тому ми хочемо, щоб створити повідомлення модель, яка зберігає абстракції бази даних. 197 00:11:33,100 --> 00:11:41,040 Таким чином, замість того, щоб робити запити MySQL безпосередньо, ми збираємося створити. 198 00:11:41,040 --> 00:11:45,840 Таким чином, ми повинні створити Папка тут званих моделей. 199 00:11:45,840 --> 00:11:48,905 І тут всередині, ми збираємося створіть файл з назвою post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> У цьому файлі PHP, ми збираємося створити 202 00:11:54,550 --> 00:12:00,590 клас піст, який триває красномовний. 203 00:12:00,590 --> 00:12:08,950 Красномовним є ім'я ORM двигун, який забезпечує Laravel. 204 00:12:08,950 --> 00:12:12,799 І тут, ми могли б очікувати, що Ви насправді потрібно написати код. 205 00:12:12,799 --> 00:12:14,840 Ми збираємося написати кілька допоміжні функції пізнішої версії. 206 00:12:14,840 --> 00:12:19,420 Але з коробки, це вже буде визнають, що в базі даних 207 00:12:19,420 --> 00:12:24,770 і ми можемо отримати доступ, скажімо, текст нашій блозі або назви, 208 00:12:24,770 --> 00:12:29,230 і створити матеріал безпосередньо з не дуже багато немає коду взагалі. 209 00:12:29,230 --> 00:12:31,110 >> Так що це одна з магічних компонентів. 210 00:12:31,110 --> 00:12:34,980 І вітер відразу цього класу більш повноцінної, 211 00:12:34,980 --> 00:12:40,480 ми будемо включати інформацію про те, що це пов'язано з так коментарях. 212 00:12:40,480 --> 00:12:42,310 Крім того, створення функцію тому ми можемо насправді 213 00:12:42,310 --> 00:12:46,340 безпосередньо отримати URL сторінки в повідомлення в блозі. 214 00:12:46,340 --> 00:12:46,840 Круто. 215 00:12:46,840 --> 00:12:47,881 Є запитання з цього приводу? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Ні. 218 00:12:51,832 --> 00:12:54,100 Круто. 219 00:12:54,100 --> 00:12:57,860 >> Так що тепер, коли ми маємо модель, ми хочу створити контролер, що це 220 00:12:57,860 --> 00:13:02,340 можливість взаємодіяти з цими моделями, а потім бази даних. 221 00:13:02,340 --> 00:13:05,540 Так що, якщо ми поглянемо на BlogController, ви 222 00:13:05,540 --> 00:13:08,490 зауважити, що це не багато тут і зараз. 223 00:13:08,490 --> 00:13:13,220 Все там є функція індекс що створює домашню сторінку, 224 00:13:13,220 --> 00:13:18,220 але без чого-небудь Тобто для відображення ще. 225 00:13:18,220 --> 00:13:20,560 >> Так в першому функції що ми збираємося створити 226 00:13:20,560 --> 00:13:25,790 це той, який дозволяє створити пост в блозі. 227 00:13:25,790 --> 00:13:30,540 Отже, ми збираємося оголосити Нова функція називається newPost. 228 00:13:30,540 --> 00:13:36,430 І тут всередині просто, ми збираємося щоб встановити цю сторіночку 229 00:13:36,430 --> 00:13:41,850 Можливо зробити версію, якщо ви пам'ятаєте з CS50, 230 00:13:41,850 --> 00:13:48,020 цього шаблону під назвою blog.new, який ми збираємося створити в небагато. 231 00:13:48,020 --> 00:13:53,170 >> Ви помітите, тут, на шостому рядку, що ми визначили цю змінну, макет. 232 00:13:53,170 --> 00:13:55,820 І якщо ми поглянемо в папці Views, 233 00:13:55,820 --> 00:14:01,640 є Макети папки, яка включає в себе дуже простий файл HTML. 234 00:14:01,640 --> 00:14:04,680 І слід зазначити, ви помітите, що у нас є цей контейнер 235 00:14:04,680 --> 00:14:06,800 ось що дає зміст. 236 00:14:06,800 --> 00:14:09,460 Так всередині нашого шаблону те, що ми збираємося зробити 237 00:14:09,460 --> 00:14:16,180 це створити те, що буде заміщених безпосередньо в цьому макеті. 238 00:14:16,180 --> 00:14:20,060 >> Тому ми сказали, що ми хочемо зробити шаблон називається blog.new. 239 00:14:20,060 --> 00:14:23,790 Але всередині Блог, є поки це не новий шаблон. 240 00:14:23,790 --> 00:14:26,910 Отже, ми збираємося створити файл з ім'ям new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Це говорить Laravel, що Цей файл PHP повинен 242 00:14:29,860 --> 00:14:31,720 бути винесена з Лезо двигун шаблон. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Так що це досить просто файл. 245 00:14:42,630 --> 00:14:46,690 Це буде форма, за допомогою яких ми насправді додати в блозі. 246 00:14:46,690 --> 00:14:49,220 >> Так магії сюди з Спадкування є те, що, гей. 247 00:14:49,220 --> 00:14:52,950 Ми хочемо, щоб вказати, що розділ, розділ зміст 248 00:14:52,950 --> 00:14:56,640 тут, який окреслений поsection іstop. 249 00:14:56,640 --> 00:15:02,260 Так що між тут збирається повинні бути підставлені у майстер-макета. 250 00:15:02,260 --> 00:15:07,000 А ось те, що ми хочемо зробити, це дуже просто створити новий HTML файл. 251 00:15:07,000 --> 00:15:08,690 Давайте просто додати швидкий титул. 252 00:15:08,690 --> 00:15:09,600 Додати запис у блозі. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 І в ньому, ми збирається створити форму. 255 00:15:15,390 --> 00:15:19,197 >> Ця форма буде мати дію. 256 00:15:19,197 --> 00:15:21,780 І це буде щось що ми підставимо в подальшому, 257 00:15:21,780 --> 00:15:24,200 і ми побачимо, як маршрутизації вписується в тут. 258 00:15:24,200 --> 00:15:33,600 Але ми просто збираємося визначити зараз що це йде в URL з маршрутом 259 00:15:33,600 --> 00:15:34,860 від createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 І тоді це буде мати метод пост. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 В тут, ми збираємося щоб мати два поля. 264 00:15:47,590 --> 00:15:49,170 Div клас = "форм-група". 265 00:15:49,170 --> 00:15:55,806 >> Ми використовуємо бібліотеку Bootstrap CSS люб'язно надані Twitter. 266 00:15:55,806 --> 00:15:57,720 Отже, ми збираємося створити два з них. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Таким чином, це перший вхід буде назва. 269 00:16:05,970 --> 00:16:08,437 Так Введіть ім'я = "Назва". 270 00:16:08,437 --> 00:16:09,270 Клас = "FormControl". 271 00:16:09,270 --> 00:16:13,540 272 00:16:13,540 --> 00:16:14,425 Тип = "текст". 273 00:16:14,425 --> 00:16:16,050 Я збираюся додати замінник = "Title". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> І потім друга є буде текстова область. 276 00:16:26,140 --> 00:16:27,827 Name = "зміст". 277 00:16:27,827 --> 00:16:28,660 Клас = "FormControl". 278 00:16:28,660 --> 00:16:33,402 279 00:16:33,402 --> 00:16:34,610 І заповнювач = "Напишіть тут". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Там ми йдемо. 282 00:16:43,480 --> 00:16:46,760 Нарешті, ми збираємося додати кнопку швидкого уявити. 283 00:16:46,760 --> 00:16:50,370 Type = "уявити" клас = "БТН БТН-основний". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Таким чином, ці всі особливості завантажувачі 286 00:16:55,340 --> 00:16:58,510 що це може бути покладена в способі, яким це 287 00:16:58,510 --> 00:17:03,730 здобиччю для користувача, а не голий HTML. 288 00:17:03,730 --> 00:17:06,250 >> Таким чином, ми визначили контролер тут. 289 00:17:06,250 --> 00:17:08,930 Ми визначили дуже просту точку зору. 290 00:17:08,930 --> 00:17:12,339 Але те, що вистачає сполучної тканини. 291 00:17:12,339 --> 00:17:15,420 Тому на даному етапі, Laravel не має ні найменшого уявлення як 292 00:17:15,420 --> 00:17:18,312 ми збираємося насправді цей контролер. 293 00:17:18,312 --> 00:17:20,270 Так це визначено в файл з ім'ям routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 І зараз, у нас є один маршрут. 296 00:17:24,310 --> 00:17:29,060 Який є, коли ми йдемо в Головна шлях для цього сайту, 297 00:17:29,060 --> 00:17:33,140 це буде надавати Контролер індекс. 298 00:17:33,140 --> 00:17:38,880 Так ось, що нам потрібно зробити, це реалізувати Новий маршрут для нас, щоб створити повідомлення. 299 00:17:38,880 --> 00:17:41,910 >> Тому ми використовуємо цей метод отримати, який визначає 300 00:17:41,910 --> 00:17:48,650 що, коли користувач намагається отримати це page-- спеціально 301 00:17:48,650 --> 00:17:52,850 Повідомлення скоротити новий page-- те, що ми збираємося зробити 302 00:17:52,850 --> 00:18:02,060 це використовувати контролер під назвою BlogController нове повідомлення. 303 00:18:02,060 --> 00:18:03,460 Той, який ми тільки що створили. 304 00:18:03,460 --> 00:18:08,090 А потім ми збираємося псевдонім як newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Ми збираємося створити ще функція небагато. 307 00:18:19,850 --> 00:18:23,520 Але те, що тут, під ключ "як" є що 308 00:18:23,520 --> 00:18:28,195 ми можемо замінити в Наші шаблони лезо. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Так що зараз, давайте насправді також сказати маршрут. 311 00:18:36,230 --> 00:18:38,380 Таким чином, ми також збираємося створити контролер 312 00:18:38,380 --> 00:18:41,020 так що ми можемо створити ці повідомлення. 313 00:18:41,020 --> 00:18:46,940 Таким чином, якщо користувач публікує на сторінку з поста скоротити нове, те, що ми збираємося зробити 314 00:18:46,940 --> 00:18:51,350 це використовує контролер, який ми збираємося створити найближчим часом 315 00:18:51,350 --> 00:18:56,160 називається BlogController на createPost. 316 00:18:56,160 --> 00:19:01,929 І ми збираємося створити псевдонім це з як createPost. 317 00:19:01,929 --> 00:19:03,380 Круто. 318 00:19:03,380 --> 00:19:05,811 >> Є питання? 319 00:19:05,811 --> 00:19:06,310 Круто. 320 00:19:06,310 --> 00:19:09,790 Так що давайте працювати, що ми маємо до цих пір. 321 00:19:09,790 --> 00:19:16,930 Так що, якщо ми робимо PHP ремісника служити, ми побачимо багато помилок. 322 00:19:16,930 --> 00:19:20,385 Так це виглядає, як у нас Синтаксична помилка на маршрутах лінії 27. 323 00:19:20,385 --> 00:19:20,885 Ах. 324 00:19:20,885 --> 00:19:21,718 Відсутня крапка з комою. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Так що, якщо ми йдемо в 8000, Ви нічого не побачите тут ще. 327 00:19:32,870 --> 00:19:34,740 Так що це домашня сторінка за замовчуванням. 328 00:19:34,740 --> 00:19:37,730 >> Але якщо ми підемо на повідомлення слеш новий, гей. 329 00:19:37,730 --> 00:19:40,425 Це буде вигляд, що ми тільки що створили. 330 00:19:40,425 --> 00:19:42,550 Прямо зараз, ми не маємо реалізована функціональність 331 00:19:42,550 --> 00:19:44,060 про те, коли ми натискаємо кнопку Надіслати. 332 00:19:44,060 --> 00:19:47,110 Так що, якщо ми натиснемо на Відправити Кнопка, він збирається бігти помилку. 333 00:19:47,110 --> 00:19:49,840 Але ми збираємося код, який Прямо зараз, саме те, що ми 334 00:19:49,840 --> 00:19:54,840 хочу зробити, коли користувач представляє цю форму. 335 00:19:54,840 --> 00:19:55,770 >> Так давайте зробимо це. 336 00:19:55,770 --> 00:19:57,380 Перейти назад в файл контролерів. 337 00:19:57,380 --> 00:20:00,180 Те, що ми збираємося зробити, це здійснити цю нову функцію 338 00:20:00,180 --> 00:20:04,360 що дозволяє створити повідомлення. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Оголосити нову функцію. 341 00:20:08,990 --> 00:20:11,527 Суспільна функція createPost. 342 00:20:11,527 --> 00:20:14,610 І ця функція буде трохи більш складним, ніж те, що 343 00:20:14,610 --> 00:20:15,559 у нас було раніше. 344 00:20:15,559 --> 00:20:18,350 Але ви побачите тут, що ми не відбувається насправді писати SQL. 345 00:20:18,350 --> 00:20:20,980 ORM, Красномовним ORM, збирається дозволити 346 00:20:20,980 --> 00:20:26,400 нам це зробити в деяких способи більш елегантний спосіб. 347 00:20:26,400 --> 00:20:29,140 >> Отже, ми збираємося створити нову посаду. 348 00:20:29,140 --> 00:20:34,120 І тут ми примірника нового об'єкта 349 00:20:34,120 --> 00:20:38,080 від моделі, що ми просто створений, після модель. 350 00:20:38,080 --> 00:20:44,450 І те, що ми збираємося зробити, це встановити Назва атрибутом цього використовувати щось 351 00:20:44,450 --> 00:20:47,380 що ми отримуємо від сервера. 352 00:20:47,380 --> 00:20:52,060 Таким чином, це схоже на те, що що було раніше в CS50 фінансів 353 00:20:52,060 --> 00:20:57,750 де ми хотіли б зробити, використовуючи Супер Глобальний Повідомлення дивлячись на титул. 354 00:20:57,750 --> 00:21:01,600 >> Так Laravel забезпечує деяку санітарії і ще багато чого, використовуючи цю допоміжну функцію. 355 00:21:01,600 --> 00:21:07,610 Таким чином, ми воліли б використовувати це замість того, цієї дуже простий сирому вигляді з PHP. 356 00:21:07,610 --> 00:21:17,430 І тоді те, що ми збираємося зробити, це встановити Зміст до входу отримати зміст. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Ми насправді відбувається, щоб обернути це корисний функції 359 00:21:22,720 --> 00:21:31,820 що PHP забезпечує називають nl2br, що Виявляється нових ліній NLS, в БРС перерви, 360 00:21:31,820 --> 00:21:35,822 так що ми можемо насправді є різні пункти в ньому. 361 00:21:35,822 --> 00:21:38,030 І, нарешті, те, що ми збираємося зробити, це зберегти цей пост. 362 00:21:38,030 --> 00:21:41,686 Так ми називаємо функцію заощадити на цій моделі. 363 00:21:41,686 --> 00:21:43,800 Ми збираємося, щоб зберегти свій пост. 364 00:21:43,800 --> 00:21:49,970 І, нарешті, те, що ми збираємося зробити це перенаправлення користувача спеціально 365 00:21:49,970 --> 00:21:55,060 на маршрут, який ми збираємося створити найближчим часом, Псевдонім, viewPost. 366 00:21:55,060 --> 00:22:00,435 І ми збираємося пройти в аргументах ID, будучи ідентифікатор цієї нової посади. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Відмінно. 369 00:22:05,640 --> 00:22:09,090 Отже, якщо ми насправді піти і запустити цю. 370 00:22:09,090 --> 00:22:11,370 Ми збираємося додати новий запис. 371 00:22:11,370 --> 00:22:15,930 Давайте сказати, що це семінар 50. 372 00:22:15,930 --> 00:22:17,620 І сказати, звичайно. 373 00:22:17,620 --> 00:22:18,240 ASDL. 374 00:22:18,240 --> 00:22:18,740 Неважливо. 375 00:22:18,740 --> 00:22:20,320 Якась зміст. 376 00:22:20,320 --> 00:22:21,180 І уявити його. 377 00:22:21,180 --> 00:22:23,850 І ми помітили, що, агов. маршрути не визначені. 378 00:22:23,850 --> 00:22:32,340 Але якщо ми поглянемо на PhpMyAdmin і шукати чи ні нашої функції 379 00:22:32,340 --> 00:22:34,370 нічого не робив. 380 00:22:34,370 --> 00:22:36,670 Подивіться на посадах Blog50. 381 00:22:36,670 --> 00:22:37,720 Ми помітили, що, гей. 382 00:22:37,720 --> 00:22:43,530 Насправді, у нас просто створити що блог пост з тимчасовими мітками, як зазначено. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Отже, тепер давайте повернемося і фактично створити це інша функція в нашому контролері, 385 00:22:51,630 --> 00:22:54,790 зокрема, контролер viewPost. 386 00:22:54,790 --> 00:23:00,290 Функція viewPost Так громадськості. 387 00:23:00,290 --> 00:23:04,070 Так ось що ми будемо робити, замість того, щоб мати порожні дужки, 388 00:23:04,070 --> 00:23:08,800 ми хочемо пройти за ідентифікатором пост, який ми створюємо. 389 00:23:08,800 --> 00:23:12,800 А звідси, що ми збираємося робити насправді запит до бази даних для нього. 390 00:23:12,800 --> 00:23:15,140 >> Так що, якщо ми в темах, є функція, звана 391 00:23:15,140 --> 00:23:18,860 Знайти що дозволяє запитати його ID. 392 00:23:18,860 --> 00:23:22,110 Зокрема, насправді, ми збираємося використовувати альтернативну версію цього називається 393 00:23:22,110 --> 00:23:27,880 Знайти або ні, що дозволяє нам кинути з цієї функції, 394 00:23:27,880 --> 00:23:34,700 кинути виняток, якщо ID ми передаємо не існує. 395 00:23:34,700 --> 00:23:37,500 І тоді ми будемо щось робити схоже на те, що ми робили раніше 396 00:23:37,500 --> 00:23:41,100 де ми встановлюємо зміст цій сторінці, щоб бути 397 00:23:41,100 --> 00:23:47,950 надана версія цього нового погляду який ми збираємося створити, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> І ми збираємося перейти в it-- так само, як в CS50 зробити 399 00:23:51,030 --> 00:23:56,645 function-- словник змінних. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Ключі цього асоціативного масиву стати змінних в шаблоні. 402 00:24:04,620 --> 00:24:06,830 Так що ми збираємося робити після посту. 403 00:24:06,830 --> 00:24:12,474 Так проходять побічно пост, ми запитується з бази даних. , 404 00:24:12,474 --> 00:24:14,390 Тепер те, що ми збираємося створити цей вид 405 00:24:14,390 --> 00:24:17,560 так що ми можемо насправді дивитися Повідомлення в блозі, що ми побудували. 406 00:24:17,560 --> 00:24:20,280 >> Отже, ми збираємося створити файл з ім'ям view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Так всередині цього шаблону, те, що ми збираємося зробити 409 00:24:29,640 --> 00:24:39,700 разом узяті просто сторінка, дозволяє відображати вміст. 410 00:24:39,700 --> 00:24:44,280 Так ми робимо розділ, що, перш ніж утримання. 411 00:24:44,280 --> 00:24:46,800 Стоп. 412 00:24:46,800 --> 00:24:53,920 І те, що ми збираємося зробити в тут 413 00:24:53,920 --> 00:24:56,930 написати який-небудь HTML для відображення цієї сторінки. 414 00:24:56,930 --> 00:25:03,590 >> Отже, ми збираємося, щоб обернути його з фантазії Новий елемент HTML5 під назвою статті. 415 00:25:03,590 --> 00:25:05,790 І тут ми йдемо мати заголовка, в якому 416 00:25:05,790 --> 00:25:12,190 ми збираємося просто мати h1, який включає в себе заголовок запису. 417 00:25:12,190 --> 00:25:17,120 Так от, якщо ми подивимося на це подвійні фігурні позначення дужки, 418 00:25:17,120 --> 00:25:21,690 це буде робити по суті PHP відлуння заголовок поста. 419 00:25:21,690 --> 00:25:25,630 Так що це корисно скорочення що Laravel дає нам. 420 00:25:25,630 --> 00:25:31,070 Отже, ми збираємося використовувати це позначення замість цього. 421 00:25:31,070 --> 00:25:40,220 >> І ось, ми збираємося також роздрукувати зміст його. 422 00:25:40,220 --> 00:25:43,480 І тут ми йдемо зробити пост зміст. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 І на дні, що ми збираюся зробити, це створити колонтитул. 425 00:25:50,660 --> 00:25:57,690 І в підвалі, ми збираємося Перший показ, коли це була розміщена. 426 00:25:57,690 --> 00:26:01,320 Так що це була розміщена на, створений в. 427 00:26:01,320 --> 00:26:07,996 >> І Laravel використовує дуже приємно Дата бібліотеки під назвою Carbon. 428 00:26:07,996 --> 00:26:11,120 Так що ми можемо зробити щось під назвою difforHumans, що ви бачили раніше. 429 00:26:11,120 --> 00:26:14,360 Коли ми в курсі. це скажу, як, п'ять секунд тому. 430 00:26:14,360 --> 00:26:16,860 Так що це дуже приємно Функціональність Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 І, нарешті, ми збираємося щоб закрити цей підвал. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Отже, якщо ми повернемося до Головна сторінка ми збираємося 435 00:26:31,450 --> 00:26:34,490 не бачу нічого тут ще й тому, ми не кодується до домашню сторінку. 436 00:26:34,490 --> 00:26:40,962 Але якщо ми підемо на повідомлення слеш один, ми збираємося, щоб побачити виняток. 437 00:26:40,962 --> 00:26:42,670 Хто-небудь знає, чому ми бачимо виняток? 438 00:26:42,670 --> 00:26:44,516 Що нам не вистачає? 439 00:26:44,516 --> 00:26:45,290 Будь-які ідеї? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Отже, що ж ми робимо раніше для нас насправді 442 00:26:49,790 --> 00:26:52,285 щоб визначити, як ми доберемося до конкретні контролери? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> SPEAKER 1: маршрут? 445 00:26:55,770 --> 00:26:56,519 ЕРІК Оуян: Так. 446 00:26:56,519 --> 00:26:58,070 Таким чином, ми як і раніше повинні визначити маршрут. 447 00:26:58,070 --> 00:26:59,794 Таким чином, ми повернемося сюди, щоб routes.php. 448 00:26:59,794 --> 00:27:01,710 Ви помітите, що ми фактично не визначений 449 00:27:01,710 --> 00:27:05,010 як ми збираємося, щоб отримати для цього контролера. 450 00:27:05,010 --> 00:27:06,780 Так що тепер ми будемо визначати цей маршрут. 451 00:27:06,780 --> 00:27:09,280 Це досить просто, схоже на те, що ми робили раніше. 452 00:27:09,280 --> 00:27:13,910 Але те, що ми збираємося відзначити тут що ми будемо мати заповнювач. 453 00:27:13,910 --> 00:27:18,730 >> Так що, якщо ми робимо route.get слеш ідентифікатор поста. 454 00:27:18,730 --> 00:27:24,290 Так ID тепер, що буде бути передані в контролер. 455 00:27:24,290 --> 00:27:27,820 Це збирається використовувати контролер, який ми тільки що 456 00:27:27,820 --> 00:27:33,560 створений, BlogController на viewPost. 457 00:27:33,560 --> 00:27:36,420 І ми збираємося Псевдонім це як viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Відмінно. 460 00:27:47,490 --> 00:27:49,470 Отже, тепер ми збираємося створити цей маршрут. 461 00:27:49,470 --> 00:27:52,100 >> Так що тепер, якщо ми йдемо тут та оновити цю сторінку, 462 00:27:52,100 --> 00:27:54,410 ми насправді дійсно є наш новий пост в блозі. 463 00:27:54,410 --> 00:27:57,710 Так що це те, що ми створили раніше. 464 00:27:57,710 --> 00:28:01,320 Дуже проста сторінка, але відображає повідомлення в блозі, що ми тільки що створили. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Круто. 467 00:28:04,760 --> 00:28:08,880 І якщо ми насправді йти через весь Процес створення нового запису в блог, 468 00:28:08,880 --> 00:28:11,700 ми помітили, що всі перенаправляє правильно. 469 00:28:11,700 --> 00:28:12,950 Якщо я кажу "Привіт. 470 00:28:12,950 --> 00:28:15,710 Я Джонатан Тан ". 471 00:28:15,710 --> 00:28:18,550 Скажімо, "Це мій блог." 472 00:28:18,550 --> 00:28:22,830 І уявити його, це створить Цей новий пост в блозі з ID 2, 473 00:28:22,830 --> 00:28:28,920 яка збільшує від того, що ми мали раніше і відображає його правильно. 474 00:28:28,920 --> 00:28:30,760 Високий. 475 00:28:30,760 --> 00:28:32,930 >> Є питання? 476 00:28:32,930 --> 00:28:33,430 Так? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2: Чи Laravel ручку санітарна обробка та все для вас? 478 00:28:36,537 --> 00:28:37,245 ЕРІК Оуян: Так. 479 00:28:37,245 --> 00:28:42,990 Тому, коли ми бачили раніше, коли ми зробили вхід товстої кишки товстої кишки отримати, 480 00:28:42,990 --> 00:28:47,720 що сануючої будь SQL ін'єкції і ще багато чого 481 00:28:47,720 --> 00:28:51,660 який ми могли б виконати, якщо ми зловмисник сайту. 482 00:28:51,660 --> 00:28:54,115 Так Laravel обробляє багато того, що за лаштунками. 483 00:28:54,115 --> 00:28:57,030 Хороше питання. 484 00:28:57,030 --> 00:29:00,390 >> Отже, давайте поглянемо на головній сторінці. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Так що, якщо ми спочатку повернутися до контролер для домашньої сторінці, 487 00:29:06,790 --> 00:29:08,740 Ви помітите, що він не робити тут. 488 00:29:08,740 --> 00:29:11,620 Ви помітите, що ми не переходячи в цьому контролері 489 00:29:11,620 --> 00:29:13,830 нічого особливо корисним. 490 00:29:13,830 --> 00:29:16,660 Це тільки в цьому індексний файл. 491 00:29:16,660 --> 00:29:18,770 >> Отже, давайте переходити в це щось корисне. 492 00:29:18,770 --> 00:29:21,450 І, зокрема, ми збирається пройти на посаді. 493 00:29:21,450 --> 00:29:28,740 І Laravel дозволяє зробити запис усього, що 494 00:29:28,740 --> 00:29:30,625 дозволить нам отримати всі повідомлення. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Тепер, якщо ми повернемося до index.php, ви побачите, гей. 497 00:29:35,730 --> 00:29:37,060 Нічого ще немає. 498 00:29:37,060 --> 00:29:41,290 Але те, що ми хочемо зробити тут насправді перебору, 499 00:29:41,290 --> 00:29:46,420 зробити цикл по кожному елементу над посад, які дозволяє роздруковувати повідомлення. 500 00:29:46,420 --> 00:29:53,180 >> Так Foreach повідомлень як посада, що ми хочемо зробити, 501 00:29:53,180 --> 00:29:57,252 це роздрукувати вміст з повідомлення в блозі. 502 00:29:57,252 --> 00:30:00,210 Але одна річ, ви помітите, що ми насправді написав велику частину цього коду 503 00:30:00,210 --> 00:30:01,370 вже в view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Так що ми збираємося насправді зробити це використовувати хороший корисну функцію леза 506 00:30:08,640 --> 00:30:11,300 і винести за цей загальний код. 507 00:30:11,300 --> 00:30:12,570 Так ми йдемо сюди. 508 00:30:12,570 --> 00:30:16,210 >> Ми збираємося взяти цей контент прямо тут, і те, що ми збираємося робити 509 00:30:16,210 --> 00:30:18,170 це створити нову папку. 510 00:30:18,170 --> 00:30:20,364 Давайте просто називають його часткових. 511 00:30:20,364 --> 00:30:22,530 І тут ми йдемо створити post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Так от, ми факторізовать шлях в які ми хочемо відобразити ці повідомлення. 514 00:30:33,100 --> 00:30:38,690 І ось що ми будемо робити, а не фактично не маючи, що HTML безпосередньо, 515 00:30:38,690 --> 00:30:41,530 ми збираємося використовувати цю директиву називається включають blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> І те, що ми збираємося зробити тут це передати на посаді сторінки. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Отже, якщо ми повернемося сюди, ми зауважити, що функціональні можливості і раніше 520 00:31:01,050 --> 00:31:01,550 такий же. 521 00:31:01,550 --> 00:31:05,140 Але тепер у нас є це факторізовать код, на цей HTML. 522 00:31:05,140 --> 00:31:07,070 Таким чином, ми можемо використовувати його в індекс. 523 00:31:07,070 --> 00:31:09,090 Так от, це дуже просто. 524 00:31:09,090 --> 00:31:17,870 Все, що ми робимо, це включити blog.partials.post і масив. 525 00:31:17,870 --> 00:31:20,845 І десь в і колись, ми після посту. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Отже, якщо ми повернемося до домашня сторінка, ми побачимо, що, гей. 528 00:31:28,182 --> 00:31:30,515 У нас є список всіх повідомлення в блозі, які ми мали раніше. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Ми, можливо, захочете додати деякі "якщо" умови і "інакше" умови 531 00:31:37,700 --> 00:31:39,979 так що якщо у нас немає що-небудь на блозі, 532 00:31:39,979 --> 00:31:41,520 ми хочемо показати щось корисне. 533 00:31:41,520 --> 00:31:42,570 Мовляв, гей. 534 00:31:42,570 --> 00:31:44,340 Там немає змісту, але на блозі. 535 00:31:44,340 --> 00:31:47,670 І якщо ви, хлопці, насправді виглядають на Код розподіл на GitHub, 536 00:31:47,670 --> 00:31:50,100 ви побачите приклад того, як ми робимо це. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Круто. 539 00:31:54,110 --> 00:31:54,890 Є питання? 540 00:31:54,890 --> 00:31:55,510 Так. 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2: Я думаю, просто Основне питання ,. 542 00:31:57,468 --> 00:31:59,480 Повернутися на маршруті. 543 00:31:59,480 --> 00:32:00,230 ЕРІК Оуян: Так. 544 00:32:00,230 --> 00:32:01,935 Якщо ми поглянемо на маршрутах. 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2: Де uses.blogcontroller на створення пост, 546 00:32:06,018 --> 00:32:07,560 що це спрямовують нас до? 547 00:32:07,560 --> 00:32:08,310 ЕРІК Оуян: Так. 548 00:32:08,310 --> 00:32:08,550 Так. 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2: Або те, що that-- 550 00:32:09,716 --> 00:32:12,620 ЕРІК Оуян: Отже, поглянемо, скажімо, Наприклад, цей маршрут прямо тут. 551 00:32:12,620 --> 00:32:17,190 Перша частина є фактичним URL, що користувач буде піти. 552 00:32:17,190 --> 00:32:19,930 І цей масив тут, Асоціативний масив, визначає 553 00:32:19,930 --> 00:32:24,520 як ми хочемо, щоб акт застосування у відповідь на це. 554 00:32:24,520 --> 00:32:29,090 Так використовує це контролер, функції, які ми 555 00:32:29,090 --> 00:32:31,610 хочете подзвонити, коли користувач переходить до цього URL. 556 00:32:31,610 --> 00:32:35,190 Так viewPost тут був функція, яку ми визначається всередині 557 00:32:35,190 --> 00:32:36,100 з BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2: Я бачу. 559 00:32:37,160 --> 00:32:39,368 >> ЕРІК Оуян: --so, що ми може насправді зробити вигляд, 560 00:32:39,368 --> 00:32:42,590 виконати деякі розрахунки, взаємодіяти з базою даних SQL. 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2: ОК. 562 00:32:43,560 --> 00:32:46,960 >> ЕРІК Оуян: А потім інші частина, "як" це псевдонім, який ми використовуємо. 563 00:32:46,960 --> 00:32:50,714 Так що, якщо ми помічаємо, коли ми створили форму, 564 00:32:50,714 --> 00:32:52,380 Ви помітите, що URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Так він замінює у фактичній URL, так що ми не складно 567 00:32:58,330 --> 00:33:02,940 кодування їх у так що ми можемо змінити його коли, скажімо, якщо ми хотіли перейменувати. 568 00:33:02,940 --> 00:33:06,055 Замість того, щоб після косою риси нове, ми хочемо зробити подібне, р 569 00:33:06,055 --> 00:33:09,490 скоротити новий просто очистити до наших адрес бітів. 570 00:33:09,490 --> 00:33:14,740 Все змінювалося в одному місці, а ніж у всіх різних файлів. 571 00:33:14,740 --> 00:33:15,451 >> Круто. 572 00:33:15,451 --> 00:33:15,950 Це добре. 573 00:33:15,950 --> 00:33:20,070 Так що тепер у нас є дуже Основний блог-платформа. 574 00:33:20,070 --> 00:33:24,260 Ми, ймовірно, хочете додати кнопки, щоб що ми дійсно можемо створювати нові повідомлення. 575 00:33:24,260 --> 00:33:27,850 Так що, якщо ми поглянемо на макет Учителя, 576 00:33:27,850 --> 00:33:31,280 у нас є розділ під назвою заголовка правої що ми тільки що визначили на вершині. 577 00:33:31,280 --> 00:33:34,820 Отже, ми можемо додати кнопки верхня частина заголовка. 578 00:33:34,820 --> 00:33:43,950 >> Так що, якщо ми йдемо в index.blade.php, насправді зробити, це визначити, що відбувається всередині тут. 579 00:33:43,950 --> 00:33:46,970 Так в цьому розділі заголовка праворуч, те, що ми збираємося зробити 580 00:33:46,970 --> 00:33:55,240 це додати в кнопку, щоб перейти до URL визначається за маршрутом новому посту. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Просто, щоб очистити його і зробити це досить і всі Bootstrap, 583 00:34:01,660 --> 00:34:04,630 ми збираємося зробити ця кнопка за замовчуванням. 584 00:34:04,630 --> 00:34:07,794 Давайте просто зробити його великим для задоволення. 585 00:34:07,794 --> 00:34:09,969 >> А всередині нього, ми могли б поставити який-небудь текст. 586 00:34:09,969 --> 00:34:14,030 Але те, що Bootstrap забезпечує є glyphicons. 587 00:34:14,030 --> 00:34:17,840 Так що ми можемо насправді додати, що хороший олівець, який ми бачили раніше. 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-олівець. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Так що це дозволить нам поставити У значок замість тексту. 593 00:34:35,340 --> 00:34:38,960 Тепер, якщо ми зупинити це буде визначати цей розділ. 594 00:34:38,960 --> 00:34:39,460 І, гей. 595 00:34:39,460 --> 00:34:45,000 У нас є хороший кнопку, яка пов'язує нас безпосередньо додати сторінку блога пост. 596 00:34:45,000 --> 00:34:46,659 >> Таким чином, ми маємо досить простий блог. 597 00:34:46,659 --> 00:34:49,710 Ми можемо додати матеріал на нього. 598 00:34:49,710 --> 00:34:53,650 Але те, що ми зазвичай чекаємо від блогах коментарів. 599 00:34:53,650 --> 00:34:57,340 Так що це дійсно важливо для нас, сказати, якщо хтось відвідує веб-сайт 600 00:34:57,340 --> 00:35:00,620 і дійсно любить пост, вони можуть брати участь в обговоренні 601 00:35:00,620 --> 00:35:03,100 з іншими людьми, які відвідують сторінку. 602 00:35:03,100 --> 00:35:07,050 Отже, ми збираємося піти і створити Нова таблиця бази даних і нова модель 603 00:35:07,050 --> 00:35:12,220 так що ми можемо пов'язати коментарі з посад. 604 00:35:12,220 --> 00:35:17,370 >> Отже, перший крок, так само, як і раніше, є те, що нам потрібно запустити міграцію. 605 00:35:17,370 --> 00:35:21,982 Так як раніше, ми робимо PHP ремісник мігрують: зробити. 606 00:35:21,982 --> 00:35:24,440 І ми збираємося, щоб створити одну називається create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Це створить файл що має наш новий міграції. 609 00:35:36,080 --> 00:35:40,170 І ми збираємося, як перш, визначити нову таблицю. 610 00:35:40,170 --> 00:35:42,773 Так Схема :: створення таблиця з ім'ям коментарі. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Ця функція тут. 613 00:35:48,430 --> 00:35:51,620 А всередині цієї таблиці, що ми збираємося зробити, це по-перше, 614 00:35:51,620 --> 00:35:54,260 як і раніше, привласнити ідентифікатор. 615 00:35:54,260 --> 00:35:56,552 Збільшує ID. 616 00:35:56,552 --> 00:36:05,440 >> Ми збираємося, щоб дозволити користувачам спілкуватися їх назви з особливим коментар. 617 00:36:05,440 --> 00:36:10,080 Ми збираємося, щоб мати зміст, який йде разом з цим, текстовий зміст. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 А ось те, що ми збираємося зробити щось інше. 620 00:36:15,910 --> 00:36:23,620 Ми збираємося створити ціле що називається post_id, які 621 00:36:23,620 --> 00:36:32,100 означатиме яку посаду що специфічний коментар йде с. 622 00:36:32,100 --> 00:36:35,410 >> Крім того, ми насправді відбувається в встановити обмеження зовнішнього ключа з цього питання. 623 00:36:35,410 --> 00:36:37,750 Так MySQL буде застосовувати це. 624 00:36:37,750 --> 00:36:39,840 Ми не намагаємося призначити Кількість коментарів 625 00:36:39,840 --> 00:36:44,440 5 для розміщення 5000, якщо ми не було 5000 повідомлення про нього. 626 00:36:44,440 --> 00:36:50,240 Отже, що ми робимо тут, ми робимо іноземних post_id 627 00:36:50,240 --> 00:37:02,046 збирається бути пов'язані з поле ID з посади таблиці. 628 00:37:02,046 --> 00:37:05,900 І ми будемо насправді щось зробити ще корисно, це OnDelete. 629 00:37:05,900 --> 00:37:11,180 >> Так що, якщо ми видаляємо деякі Повідомлення з бази даних, 630 00:37:11,180 --> 00:37:15,507 що ми хочемо каскадом видаляє коментарів, а також. 631 00:37:15,507 --> 00:37:18,090 Тому що це не дуже корисно для нас зауваження за посадою 632 00:37:18,090 --> 00:37:19,900 що не існує. 633 00:37:19,900 --> 00:37:23,764 І, нарешті, як і раніше, ми збирається встановити тимчасові мітки на цьому. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 І, як і колись, ми збираємося є зворотна міграція буде 636 00:37:33,510 --> 00:37:37,920 видалення таблиці коментарі. 637 00:37:37,920 --> 00:37:40,070 >> Отже, якщо ми повернемося сюди, ми збираємося 638 00:37:40,070 --> 00:37:43,110 запустити цю міграцію, майстрових, мігрують. 639 00:37:43,110 --> 00:37:46,400 А тепер він застосовується це міграція, що ми тільки що створили. 640 00:37:46,400 --> 00:37:50,080 Так що, якщо ми подивимося на PhpMyAdmin, що ми робимо, насправді, в даний час 641 00:37:50,080 --> 00:37:53,210 є коментарі таблицю, яка має структура, яку ми тільки що вказано. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Так як раніше, ми збирається створити нову модель 644 00:37:59,610 --> 00:38:04,450 до абстрактного таблиці SQL що ми тільки що створили. 645 00:38:04,450 --> 00:38:05,450 >> Тому давайте додамо новий файл. 646 00:38:05,450 --> 00:38:06,908 Ми збираємося називати його Comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 І це насправді буде досить просто з невеликою зміною 649 00:38:15,490 --> 00:38:17,520 від чого, що було раніше. 650 00:38:17,520 --> 00:38:22,790 Так клас Коментар розширює красномовний. 651 00:38:22,790 --> 00:38:25,930 І те, що ми збираємося зробити тут визначити 652 00:38:25,930 --> 00:38:31,360 це функція, яка є Відносини з іншими моделями. 653 00:38:31,360 --> 00:38:39,250 Таким чином, ми будемо мати після функції ось що повертає цей зв'язок. 654 00:38:39,250 --> 00:38:43,330 Таким чином, ми уточнивши, що Це відноситься до повідомлення, 655 00:38:43,330 --> 00:38:49,200 кажучи, що є один пост що цей коментар відноситься. 656 00:38:49,200 --> 00:38:53,917 >> Це насправді повинен бути капітал P для даної моделі. 657 00:38:53,917 --> 00:38:56,500 А тепер тільки на інший фліп сторона, ми повинні сказати, що, гей. 658 00:38:56,500 --> 00:38:58,160 Повідомлень є коментарі. 659 00:38:58,160 --> 00:39:03,030 Так що ми збираємося зробити, це визначити коментарі суспільна функція. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 І ось повертається Це має багато коментар. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Так що тепер чарівним, коли у нас є пост, ми можемо отримати коментарі атрибутів 664 00:39:22,010 --> 00:39:25,615 і він буде заповнити її Інформація з бази даних. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Отже, давайте насправді йти до кінця і додати нову функцію, на наш погляд файлі 667 00:39:38,220 --> 00:39:43,600 так що ми можемо і дисплей і створювати коментарі. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Отже, ми збираємося, щоб визначити нову секцію. 670 00:39:56,865 --> 00:39:59,890 Давайте просто відокремити його з горизонтальної лінії. 671 00:39:59,890 --> 00:40:04,065 Розділ ID = "коментарі". 672 00:40:04,065 --> 00:40:06,990 Те, що ми збираємося зробити ось, як і колись, 673 00:40:06,990 --> 00:40:09,880 перебору всіх коментарів. 674 00:40:09,880 --> 00:40:12,960 Тому насправді, як ми робимо це, як я вже говорив, досить магічне. 675 00:40:12,960 --> 00:40:14,440 >> Ми робимо залишати коментарі. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 І тоді ми можемо зробити це для кожного цикл по кожній з коментарів. 678 00:40:22,710 --> 00:40:25,740 І те, що ми збираємося зробити клас DIV коментар, 679 00:40:25,740 --> 00:40:29,240 і ми збираємося насправді роздрукувати цей коментар. 680 00:40:29,240 --> 00:40:34,150 Так відображення, що агов, коментарі name-- людини 681 00:40:34,150 --> 00:40:38,080 , Що розмістив цей comment-- говорить точка точка точка. 682 00:40:38,080 --> 00:40:41,240 Ми збираємося зробити це в блоці цитата, просто щоб зробити це добре виглядати. 683 00:40:41,240 --> 00:40:46,470 А потім коментувати Блокувати вміст цитату. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 І Еогеасп. 686 00:40:50,892 --> 00:40:53,100 Так що тепер це буде цикл через всі коментарі 687 00:40:53,100 --> 00:40:56,500 який пов'язаний з кожним з повідомлень 688 00:40:56,500 --> 00:41:00,960 і відображення кожного з цих зауважень. 689 00:41:00,960 --> 00:41:05,120 Я збираюся додати ще один розділ вниз тут, який дозволяє додати коментар. 690 00:41:05,120 --> 00:41:07,400 Так h3 клас. 691 00:41:07,400 --> 00:41:09,580 Покладіть назву тут. 692 00:41:09,580 --> 00:41:10,934 Додати коментар. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 І ми збираємося визначити нову форму. 695 00:41:15,700 --> 00:41:18,730 >> Так як раніше, ми збирається робити вигляд дії. 696 00:41:18,730 --> 00:41:22,740 І ось, нова акція ми визначатиме новий контролер, який 697 00:41:22,740 --> 00:41:26,770 дозволяє нам реагувати на повідомлення запити для створення коментарів. 698 00:41:26,770 --> 00:41:33,365 Так URL :: Маршрут createComment. 699 00:41:33,365 --> 00:41:37,730 Я збираюся пройти в параметрі тут. 700 00:41:37,730 --> 00:41:40,380 ID поста, що ми створюємо коментар на. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 І то метод цьому Форма буде після. 703 00:41:50,280 --> 00:41:57,240 >> Тепер ми збираємося додати в два поля, форма група. 704 00:41:57,240 --> 00:42:04,670 Це буде вхід з Назва "Ім'я" і класу = "форм-контроль», 705 00:42:04,670 --> 00:42:14,250 тип = "текст", а з Прототип = "Ім'я". 706 00:42:14,250 --> 00:42:19,380 Ми також збираємося визначити інше поле форми, яка 707 00:42:19,380 --> 00:42:22,970 буде текст області, як було раніше. 708 00:42:22,970 --> 00:42:25,480 Так само, як і раніше, називати його зміст. 709 00:42:25,480 --> 00:42:31,160 Клас = "форма контролю." 710 00:42:31,160 --> 00:42:41,660 Заповнювач = "Напишіть тут." 711 00:42:41,660 --> 00:42:44,100 >> І просто так, що ми може насправді представити його, 712 00:42:44,100 --> 00:42:55,740 представити тип і клас = "БТН БТН-первинні." 713 00:42:55,740 --> 00:42:57,005 Закрийте форму. 714 00:42:57,005 --> 00:42:59,010 Закрити цю дію. 715 00:42:59,010 --> 00:43:06,580 Так що тепер, якщо ми оновити цю сторінку, де у нас є, скажімо, той чи інший пост. 716 00:43:06,580 --> 00:43:10,310 Ми повинні перезавантажити сервер. 717 00:43:10,310 --> 00:43:12,340 PHP ремісник служити. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Перезавантажте це. 720 00:43:18,334 --> 00:43:19,500 Ми повинні визначити маршрут. 721 00:43:19,500 --> 00:43:25,090 Але зараз, давайте просто прийняти це так, що ми можемо насправді показати вам, 722 00:43:25,090 --> 00:43:28,750 що сторінка виглядає, а потім ми насправді створити цей маршрут. 723 00:43:28,750 --> 00:43:29,250 Так, гей. 724 00:43:29,250 --> 00:43:37,080 У нас є новий вид сюди так що ми можемо створювати коментарі. 725 00:43:37,080 --> 00:43:39,950 Отже, давайте насправді визначити функції в контролері 726 00:43:39,950 --> 00:43:43,020 так що ми можемо додавати коментарі. 727 00:43:43,020 --> 00:43:43,650 Давайте повернемося. 728 00:43:43,650 --> 00:43:48,420 І протягом blogcontroller.php, те, що ми збираємося зробити 729 00:43:48,420 --> 00:43:51,620 це створити нову функцію називається створити коментар. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Суспільна функція createComment. 732 00:43:57,040 --> 00:44:00,130 Це матиме одного Параметр, ID посад 733 00:44:00,130 --> 00:44:02,280 що ми коментуючи. 734 00:44:02,280 --> 00:44:04,790 І, як і раніше, ми буде спочатку отримати посаду. 735 00:44:04,790 --> 00:44:10,790 Так писати findOrfail ID. 736 00:44:10,790 --> 00:44:15,020 Після цього, ми збираємося для створення нового коментаря. 737 00:44:15,020 --> 00:44:18,880 Так коментар = Новий коментар. 738 00:44:18,880 --> 00:44:26,820 Коментар Ім'я = Вхід :: отримати ім'я. 739 00:44:26,820 --> 00:44:39,420 Коментар зміст = ж нова лінія в перервах вхідних :: отримати зміст. 740 00:44:39,420 --> 00:44:43,460 >> І, нарешті, ми збираємося мати, щоб пов'язати цей коментар з цієї посади. 741 00:44:43,460 --> 00:44:47,230 Отже, ми збираємося використовувати Ця функція, коментарі, 742 00:44:47,230 --> 00:44:50,260 що дозволяє нам економити ці відносини. 743 00:44:50,260 --> 00:44:54,780 Так що тепер цей коментар буде автоматично після ID. 744 00:44:54,780 --> 00:44:57,640 Ми могли б також встановити його вручну, але це 745 00:44:57,640 --> 00:45:02,490 більш зручним для читання, наскільки як функція йде. 746 00:45:02,490 --> 00:45:05,860 І після того як ми виконати це те, що ми хочемо зробити, 747 00:45:05,860 --> 00:45:10,840 це перенаправлення користувача на маршрут, заданий за viewPost 748 00:45:10,840 --> 00:45:16,010 з масивом з Параметр поштового ідентифікатора. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> І зараз, так що це насправді функції, ми повинні визначити цей маршрут. 751 00:45:24,660 --> 00:45:27,126 Маршрут :: Post. 752 00:45:27,126 --> 00:45:32,800 І тепер ми збираємося назвати це Повідомлення скоротити ID слеш коментар. 753 00:45:32,800 --> 00:45:36,725 Масив використовує нову функцію що ми тільки що створили. 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 як createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Відмінно. 759 00:45:50,120 --> 00:45:56,150 >> Так що тепер, сподіваюся, якщо ми оновити цю сторінку і додати в коментар, скажімо, Девід Малан. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Сподіваємося, що це працює." 762 00:46:03,920 --> 00:46:05,216 Відправити. 763 00:46:05,216 --> 00:46:09,050 Ми, по суті, є коментарі на цій посаді в блозі. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Круто. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Так що тепер у нас є досить функціональна блозі. 768 00:46:21,430 --> 00:46:23,180 Ми тільки збираємося додати пару налаштувань, так 769 00:46:23,180 --> 00:46:29,090 що у нас є ще кілька корисних Інформація про ці посад. 770 00:46:29,090 --> 00:46:32,780 >> Так що, якщо ми повернемося до Головна сторінка, у нас немає ніякого сенсу 771 00:46:32,780 --> 00:46:38,790 скільки коментарі на кожному з цих посад. 772 00:46:38,790 --> 00:46:41,340 Так що ми насправді відбувається зробити це, в нашій моделі, 773 00:46:41,340 --> 00:46:51,250 визначити допоміжну функцію, яка дозволяє нам вказати кількість коментарів 774 00:46:51,250 --> 00:46:53,020 які йдуть з конкретної посади. 775 00:46:53,020 --> 00:46:56,050 Отже, ми збираємося створити допоміжна функція. 776 00:46:56,050 --> 00:46:58,020 >> Суспільна функція. 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 Так рядок, який визначає кількість коментарів, які виходять разом з ним. 780 00:47:07,180 --> 00:47:12,850 І те, що ми збираємося зробити, це сказати, що Num = це коментарі в рахунок. 781 00:47:12,850 --> 00:47:15,150 Отже, ми збираємося, щоб розраховувати Кількість коментарів. 782 00:47:15,150 --> 00:47:22,900 І якщо це число дорівнює 1, ми просто хочу, щоб повернутися 1 коментар. 783 00:47:22,900 --> 00:47:28,890 А потім в іншому випадку, ми хочемо, щоб повернутися конкатенація піт і коментарі, 784 00:47:28,890 --> 00:47:31,890 таким чином ми отримуємо плюралізація правильно. 785 00:47:31,890 --> 00:47:33,380 Просто зробити це одинарні лапки. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Один коментар. 788 00:47:37,640 --> 00:47:41,140 >> І тепер ми можемо використовувати цю функцію безпосередньо всередині нашого зору. 789 00:47:41,140 --> 00:47:44,510 Так що, якщо ми повернемося до часткові повідомлень, які ми створили, 790 00:47:44,510 --> 00:47:49,370 тепер ми хочемо насправді відобразити ряд зауважень. 791 00:47:49,370 --> 00:47:52,660 Отже, що ми можемо зробити, це Повідомлення, використовуйте цю функцію 792 00:47:52,660 --> 00:47:57,230 що ми тільки що створили, щоб відобразити ряд зауважень. 793 00:47:57,230 --> 00:48:00,440 Отже, якщо нам оновлення, він робить, насправді, дисплей 794 00:48:00,440 --> 00:48:02,240 цифрові коментарі які йдуть разом з нею. 795 00:48:02,240 --> 00:48:05,320 >> Якби ми хотіли бути вишуканою, якщо вас реально поглянути на код розподілу, 796 00:48:05,320 --> 00:48:07,800 ми можемо насправді посилаються це коментарях. 797 00:48:07,800 --> 00:48:17,040 Якщо ви пам'ятаєте, ми визначили в дивитися, що це має розділ ID коментарі. 798 00:48:17,040 --> 00:48:22,460 Так що, якщо ми насправді хотіли зв'язати безпосередньо розділі коментарів, що 799 00:48:22,460 --> 00:48:36,000 ми будемо робити тут HREF Адреса маршрутом viewPost. 800 00:48:36,000 --> 00:48:40,550 Перейдіть в масиві ID пост ID. 801 00:48:40,550 --> 00:48:46,140 А потім ми хочемо поїхати в зокрема, розділ коментарів. 802 00:48:46,140 --> 00:48:49,900 >> Ось давайте закрити тегом. 803 00:48:49,900 --> 00:48:52,950 Так що тепер, якщо ми оновити цю сторінка, натискаємо з цього питання. 804 00:48:52,950 --> 00:48:54,700 Ми підемо прямо до розділ коментарі. 805 00:48:54,700 --> 00:48:57,580 Якби ми мали довшу пошту, ви можете Побачити цей відскік вниз. 806 00:48:57,580 --> 00:49:02,668 Але ви помітите, що це не в верхній частині сторінки. 807 00:49:02,668 --> 00:49:04,090 Круто. 808 00:49:04,090 --> 00:49:04,600 Відмінно. 809 00:49:04,600 --> 00:49:08,582 Так ось досить проста приклад чогось простого 810 00:49:08,582 --> 00:49:09,790 що ви можете зробити з Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Але ви можете помітити тут, що ми зробили багато речей, 812 00:49:13,230 --> 00:49:16,200 з досить невеликою кількістю коду. 813 00:49:16,200 --> 00:49:19,420 Laravel дозволяє нам робити SQL запити за лаштунками. 814 00:49:19,420 --> 00:49:21,960 Це робить санітарії для нас за лаштунками. 815 00:49:21,960 --> 00:49:25,940 Дозволяє нам, щоб зробити ці відносини дуже легко і без нас необхідності 816 00:49:25,940 --> 00:49:33,350 робити будь-які SQL приєднатися заяви об'єднати коментарі з тим, що посади. 817 00:49:33,350 --> 00:49:36,480 Дозволяє нам робити це спадкування шаблонів 818 00:49:36,480 --> 00:49:43,780 так що ми можемо визначити ці вкладення файли, так що ми не повторюючи себе, 819 00:49:43,780 --> 00:49:47,020 так само, як коли ми були, що відображення повідомлень в блозі 820 00:49:47,020 --> 00:49:50,770 що ми не повинні скопіюйте і вставте код. 821 00:49:50,770 --> 00:49:55,450 >> І тут ви можете побудувати більш складні програми. 822 00:49:55,450 --> 00:49:58,370 Ви можете собі уявити, якщо ми хотів реалізувати увійти в, 823 00:49:58,370 --> 00:50:05,532 ми могли б сказати, приносять у третій партії структура, яка дозволяє нам робити це. 824 00:50:05,532 --> 00:50:07,490 Там купа з них що, дійсно, дуже 825 00:50:07,490 --> 00:50:09,970 Здорово, що можна зробити, як, відновлення пароля. 826 00:50:09,970 --> 00:50:14,450 І це буде надсилати вам Скидання пароля електронної пошти. 827 00:50:14,450 --> 00:50:18,260 Ми можемо реалізувати дозвіл так що я можу створити пост, 828 00:50:18,260 --> 00:50:20,350 але хтось не можу його відредагувати. 829 00:50:20,350 --> 00:50:24,610 Ми можемо реалізувати Функціональність видаляти повідомлення. 830 00:50:24,610 --> 00:50:28,160 >> Але ви можете подивитися тут, що ми маємо досить Багато всього рудиментарні компоненти 831 00:50:28,160 --> 00:50:31,640 побудувати деякі дійсно, дійсно, динамічний і захоплюючий веб-додатків. 832 00:50:31,640 --> 00:50:34,035 Так з цим, я думаю, що ми добре. 833 00:50:34,035 --> 00:50:35,720 Як ви, хлопці, є які-небудь питання? 834 00:50:35,720 --> 00:50:36,220 Так? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3: Як вам отримати статичний контент? 836 00:50:38,090 --> 00:50:39,256 >> ЕРІК Оуян: Статичний контент. 837 00:50:39,256 --> 00:50:45,520 Таким чином, ви бачили раніше, що, коли ми були це прямо тут, це зміст макета, 838 00:50:45,520 --> 00:50:49,625 Подивитися робить, ми мали це без цього масиву після цього. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, у нас було це як тільки статичний файл. 841 00:50:59,152 --> 00:51:00,860 Так що, якщо ми не проходять що-небудь разом з ним, 842 00:51:00,860 --> 00:51:03,340 це буде просто надавати HTML безпосередньо. 843 00:51:03,340 --> 00:51:09,240 Але якщо ми перейдемо в цьому асоціативному масив повідомлень, які динамічно 844 00:51:09,240 --> 00:51:12,950 витягнув з бази даних, ми може зробити сторінку динамічної. 845 00:51:12,950 --> 00:51:13,450 Круто. 846 00:51:13,450 --> 00:51:14,830 Будь-які інші питання? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3: Як би ви порівняти Laravel, можливо, деяких інших варіантів? 849 00:51:19,720 --> 00:51:20,525 ЕРІК Оуян: Звичайно. 850 00:51:20,525 --> 00:51:21,025 Так. 851 00:51:21,025 --> 00:51:23,430 Так Laravel is-- це великий question-- 852 00:51:23,430 --> 00:51:26,190 один з багатьох варіантів для веб-фреймворків. 853 00:51:26,190 --> 00:51:31,160 Так Рубін на Rails є той, який популярний. 854 00:51:31,160 --> 00:51:34,590 Я вважаю, що Twitter колись здійснюється з Рубіном на Rails. 855 00:51:34,590 --> 00:51:37,600 Я думаю, що вони так перемикатися. 856 00:51:37,600 --> 00:51:40,780 Там ще один називається FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Так Рубін на Rails використовує Ruby, мова і реалізує багато матеріалу MVC 858 00:51:46,120 --> 00:51:48,200 що ми бачимо тут. 859 00:51:48,200 --> 00:51:52,320 FuelPHP ще один рамки PHP. 860 00:51:52,320 --> 00:51:54,490 Django є одним з моїх улюблених. 861 00:51:54,490 --> 00:51:57,010 Це веб-фреймворк для Python. 862 00:51:57,010 --> 00:52:01,270 Таким чином, ви можете написати веб-додаток в Python. 863 00:52:01,270 --> 00:52:03,760 Так що тонна цих варіантів. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, я думаю, що загалом і велика моя улюблена право 865 00:52:06,170 --> 00:52:08,232 Тепер для PHP тільки тому, що компонентів 866 00:52:08,232 --> 00:52:09,440 про які ми говорили раніше. 867 00:52:09,440 --> 00:52:11,910 Це Композитор включений. 868 00:52:11,910 --> 00:52:15,750 Вона включає в себе дуже, дуже виразні ORM система. 869 00:52:15,750 --> 00:52:18,800 Також має дійсно дивовижний шаблонів Мова, що деякі з інших 870 00:52:18,800 --> 00:52:20,630 просто не дають. 871 00:52:20,630 --> 00:52:21,400 І міграції. 872 00:52:21,400 --> 00:52:23,432 Міграції є дивовижними, а також. 873 00:52:23,432 --> 00:52:24,860 Прохолодний? 874 00:52:24,860 --> 00:52:25,390 Високий. 875 00:52:25,390 --> 00:52:27,560 Ну, спасибі за дивитися цей семінар, 876 00:52:27,560 --> 00:52:30,650 і удачі у ваших кінцевих проектів. 877 00:52:30,650 --> 00:52:31,616