{{Laracast Laravel 5 Fundamentals, 4, Passing Data to Views, 09.01.2015, 13.06.2016, https://laracasts.com/series/laravel-5-fundamentals/episodes/4}} %%(hvlraw) %% (0:00) Итак, в последнем видео, у нас было введение о некоторых ключевых компонентах в Laravel - включая маршрутизацию, которая находится в каталоге %%(t)app/http%%. Мы также создали некоторые маршруты и затем узнали о том, как они отправляются к нашим методам контроллеров, которые, в свою очередь, загружают виды (views). Сейчас это всё ещё несколько ново, так что давайте ещё немного с этим поработаем. И в процессе узнаем о том как мы можем передавать переменные в наши виды. (0:30) Итак, вот что мы собираемся сделать, мы начнём с нуля. Я собираюсь удалить всё из нашего файла маршрутов. И то же самое будет верно для этих двух контроллеров. OK, так как же нам создать новый контроллер? Если вы помните, в последнем уроке, я говорил о том, что для статических страниц может быть полезно иметь какой-то общий контроллер страниц. Так, например, если пользователь запрашивает страницу About - %%(t)example.com/about%% - мы хотим отправить его на %%PagesController%%, в метод под названием %%about()%%. (1:00) Теперь прежде чем мы перейдем на следующий шаг, я хочу вам что-то показать. Представьте себе, если бы мы оставили тут в файле всё как есть и попытались просмотреть его в браузере? %%(t) laravel5.dev/about %% Попробуем, и мы получаем эту страницу с ошибкой, но она не даёт нам никакой информации о том, что пошло не так. И это потому, что Laravel и большинство фреймворков, используют концепцию среды окружения. В этой среде я хочу использовать эту особую базу данных. Я не хочу на самом деле отправлять электронную почту. (1:30) И я хочу использовать такой способ обработки ошибок. Но для производства (in production), мы также не хотим показывать ошибки пользователю, поэтому нам нужна другая конфигурация для этой среды. Так что, прямо сейчас, поскольку по умолчанию предполагается работа в production, здесь нас просто предохраняют. Все ваши закрытые данные о сервере не будут показываться для пользователя. Но, как я уже сказал, для разработки, мы на самом деле хотим видеть всё подробно. Итак, вот всё, что вам нужно сделать. Мы поговорим о конфигурации среды подробнее в будущих уроках. (2:00) Пока же, вы видите этот файл %%(t)env.example%%. Всё, что вам надо сделать, это переименовать его в %%(t).env%%, и он вступит в силу. И главным образом, не беспокойтесь обо всём что видите здесь, я научу вас всему что стоит знать в будущем. Но особенно обратите внимание, что сейчас, мы устанавливаем рабочую среду приложения не как производственную, а как локальную. Так что если мы вернёмся и обновим, теперь у нас есть немного больше информации для отладки приложения. (2:30) И, конечно, в этом случае, файл %%PagesController%% не существует. Так что это наш следующий шаг. Мы могли бы вручную создать этот контроллер, но это долго, так ведь? Вместо этого мы собираемся использовать утилиту командной строки Laravel, которую мы называем Artisan. Позвольте я вам покажу. Если мы запустим: %%(sh) php artisan %% Вы увидите несколько десятков различных команд, которые мы можем использовать. Конкретно сейчас нам нужен один из генераторов. Я хочу сделать контроллер. (3:00) Вот команда, которую мы используем: %%(sh) php artisan make:controller PagesController %% Теперь у вас тут есть два варианта. Если я запущу это, и если мы вернёмся и взглянем на наш сгенерированный файл, он включает в себя кучу различных методов. И это для приспособления к тому, что мы называем ресурсной маршрутизацией (resourceful routing), которую мы с вами пока ещё не рассмотрели. Так что вместо этого я удалю всё здесь и попробую снова. Но я добавлю тут флаг %%(t)--plain%%. (3:30) Можете думать о нём как об опции для команды. Я просто хочу пустой контроллер. Так что теперь если мы ещё раз попробуем - у нас появился простой шаблон для начала. Теперь здесь напрашивается вопрос, если вы задумаетесь: "Откуда мне знать какие опции я могу передавать этим командам?". Вы можете всегда добавить перед командой слово %%(t)help%%. Таким образом: %%(sh) php artisan help make:controller %% И теперь вам скажут тут: "Вот аргумент, который необходимо передать, и все флаги или опции перечислены ниже". (4:00) Хорошо, обратно в файл %%(t)routes.php%%... мы хотим направить обработку к методу %%about()%% в нашем контроллере, так что это наш следующий шаг. Создадим метод с именем %%about()%%. И мы просто вернём страницу About: %% public function about() { return 'About Page'; } %% И посмотрим на неё в браузере. Итак, если мы вернёмся и обновим страницу.. вот так просто! Для этого не надо быть семи пядей во лбу. (4:30) Но как мы узнали в последнем видео, вы, вероятно, не хотите возвращать строку, а скорее вид вашего контроллера: %% return view('pages.about'); %% Итак, если вы помните, мы идём в папку %%(t)resources/views%%, у нас там уже есть папка %%(t)/pages%% с прошлого раза, но я создам новую: %%(t) about.blade.php %% И снова, я собираюсь напрямую вписать тут немного HTML, но сейчас, я хочу чтобы вы подумали, как плохо это будет масштабироваться. (5:00) Если бы я хотел добавить здесь стилей, то в текущем состоянии, мне нужно будет продублировать их в каждом созданном мной виде. Не очень хорошая идея. Но мы будем говорить об этом подробнее в будущем уроке. Если вы хотите забежать вперёд, поизучайте мастер-страницы или файлы макета, как некоторые люди называют их. Хорошо, мы напишем %%(t)