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