Содержание
- 2. Что необходимо IDE PhpStorm Atom Sublime Text Notepad++ И др. https://getcomposer.org/ установка (обновление) Laravel, добавление (обновление)
- 3. Требования PHP> = 5.6.4 Расширение OpenSSL PHP Расширение PDO PHP Расширение Mbstring PHP Расширение Tokenizer PHP
- 4. Установка composer global require "laravel/installer« Обязательно поместите каталог (или эквивалентный каталог для вашей ОС) в $
- 5. Конфигурация Публичный каталог После установки Laravel вы должны настроить корневой документ / корневой public каталог веб-сервера
- 6. Конфигурация Ключ приложения Следующее, что вам нужно сделать после установки Laravel, - это установить для ключа
- 7. Laravel Mix CSS, JS, Less, Saas, Stylus, PostCSS
- 8. Laravel Forge Laravel Forge – Автоматическое развёртывания из Git DigitalOcean, Linode
- 9. СТРУКТУРА LARAVEL app — место, где хранятся наши контроллеры, модели bootstrap — системная папка Laravel config
- 10. .env — файл с настройками “рабочей среды” .gitignore — настройки для работы с git репозиторием artisan
- 11. 2 варианта первоначальной настройки: Прописать все настройки внутри config/app.php, config/database.php Создать новый файл среды .env в
- 12. В начале Laravel подтягивает настройки среды запуска (из .env) и только потом ищет нужную директиву внутри
- 13. ENVIRONMENT: РАБОЧАЯ СРЕДА LARAVEL Назначение рабочей среды: разделять настройки для разработки/тестирования/production изолировать свои настройки рабочей среды
- 14. НАСТРОЙКА РАБОЧЕЙ СРЕДЫ LARAVEL 5 APP_ENV — название рабочей среды APP_KEY — ключ приложения APP_DEBUG —
- 15. ARTISAN: ОСНОВНЫЕ КОМАНДЫ Список команд: php artisan list Список команды определенного блока: php artisan list make
- 16. Используемая рабочая среда: php artisan env Используемая версия Laravel: php artisan --version Генерация ключа приложения: php
- 17. Выключение приложения: php artisan down Включение приложения: php artisan up Запуск миграций: php artisan migrate ARTISAN:
- 18. МАРШРУТИЗАЦИЯ Client HTTP Request Router
- 19. МАРШРУТИЗАЦИЯ: РЕГИСТРАЦИЯ МАРШРУТОВ метод get говорит о том, что запрос пришел по методу GET на url
- 20. МАРШРУТИЗАЦИЯ: ROUTER Поддерживаемые методы для регистрации маршрутов: Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri,
- 21. МАРШРУТИЗАЦИЯ: ROUTER Иногда нужно перечислить сразу несколько методов для маршрута: Route::match(['get', 'post'], '/', function () {
- 22. МАРШРУТИЗАЦИЯ: ПАРАМЕТРЫ МАРШРУТОВ В данном случае все, что будет стоять после user/ будет попадать в параметр
- 23. МАРШРУТИЗАЦИЯ: ПАРАМЕТРЫ МАРШРУТОВ передаются маршруты в том же порядке, в котором они стоят внутри маршрута. название
- 24. МАРШРУТИЗАЦИЯ: ПАРАМЕТРЫ МАРШРУТОВ Параметры у маршрута могут быть необязательными: указываются с “?”. Route::get('user/{id?}', function ($id =
- 25. МАРШРУТИЗАЦИЯ: ПРИВЯЗКА К ДЕЙСТВИЮ 2й параметр в регистрации маршрутов — привязка к действию. Действия (action) —
- 26. Для одного маршрута должно быть зарегистрировано одно действие. МАРШРУТИЗАЦИЯ: ПРИВЯЗКА К ДЕЙСТВИЮ Скачано с сайта https://sharewood.biz/
- 27. МАРШРУТИЗАЦИЯ: ПРИОРИТЕТ МАРШРУТОВ Каждый следующий маршрут перекрывает предыдущий, если они пересекаются по url: Route::get('route', 'FirstController@action'); Route::get('route',
- 28. МАРШРУТИЗАЦИЯ: ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ Это позволит упростить роутер и повысить читаемость кода. Появились методы view() и redirect()
- 29. Указание параметра маршрута через регулярные выражения: Route::get('user/{name}', function ($name) { // })->where('name', '[A-Za-z]+'); Route::get('user/{id}', function ($id)
- 30. КОНТРОЛЛЕРЫ Контроллеры — это классы, которые содержат (организовывают) логику обработки запроса, работу с моделью данных и
- 31. Client HTTP Request Router Controller КОНТРОЛЛЕРЫ
- 32. КОНТРОЛЛЕРЫ: СОЗДАНИЕ Создание контроллера: php artisan make:controller UserController В конце метода обычно возвращается представление через view:
- 33. Возможно создание контроллера в нужной области видимости внутри директории app/Http/Controllers: php artisan make:controller Admin/PageController КОНТРОЛЛЕРЫ: СОЗДАНИЕ
- 34. КОНТРОЛЛЕРЫ: ПАРАМЕТРЫ МАРШРУТА каждый переданный в маршруте параметр требуется обработать в контроллере значения параметров передаются в
- 35. namespace App\Http\Controllers; use Illuminate\Http\Request; class PagesController extends Controller { public function user($userId) { //$userId - это
- 36. BLADE: ПРЕДСТАВЛЕНИЯ Для удобства работы со страницами в Laravel существуют представления (view). Они находятся в папке
- 37. ПРЕДСТАВЛЕНИЯ Client HTTP Request Router Controller
- 38. BLADE: ПОДКЛЮЧЕНИЕ ПРЕДСТАВЛЕНИЙ Представления подключаются через view(), где первый параметр - название представления, а второй -
- 39. BLADE: ПЕРЕДАЧА ДАННЫХ В ПРЕДСТАВЛЕНИЕ Пример подразумевает наличие переменной $data в методе контроллера, и переменная будет
- 40. BLADE: ОТОБРАЖЕНИЕ ДАННЫХ В ШАБЛОНЕ Для отображения значения переменной в представлении используется {{ $var }} Переменная
- 41. BLADE: УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ Blade поддерживает следующие управляющие конструкции: if, if … else, isset, empty, for, foreach,
- 42. @isset($user) @foreach($users as $user) {{ $user->name }} @if($user->approved()) Пользователь подтвержден @endif @endforeach @endisset BLADE: УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ
- 43. ДЕБАГ ПАНЕЛЬ BARRYVDH Полезный инструмент для разработчика: пакет barryvdh/laravel-debugbar composer require barryvdh/laravel-debugbar --dev В конфиг config/app.php
- 44. Для среды production убрать вывод ошибок и информацию для дебага: В app\Providers\AppServiceProvider.php в методе register(): if
- 45. Решение №1 dump файл Проблемы: при каждом обновлении этого файла придётся запускать этот файл целиком невозможность
- 46. Решение №2 Разбить dump-файл на отдельные файлы, с каждым изменением добавлять новые файлы, что позволит сохранить
- 47. Решение №3 Добавить timestamp в названия файлов и создать таблицу, где записывать выполненные инструкции Проблемы: невозможность
- 48. Решение №4 Для каждого файла создавать файл-дублёр, который позволит вернуться на шаг назад Проблемы: недостаточная автоматизация
- 49. МИГРАЦИИ: ЧТО ТАКОЕ МИГРАЦИИ Миграции — встроенный механизм в Laravel, позволяющий решить все вышеперечисленные проблемы. Миграция
- 50. Метод up() содержит в себе инструкции, которые запускаются при запуске миграции. Метод down() содержит в себе
- 51. Создаются миграции через artisan: php artisan make:migration create_new_table create_new_table — название миграции. создаст файл timestamp_create_new_table.php создаст
- 52. дополнительные флаги: --create=tableName — создание таблицы tableName --table=tableName — изменение таблицы tableName МИГРАЦИИ: СОЗДАНИЕ
- 53. Schema::create — создание таблицы Schema::table — обновление таблицы Schema::drop — удаление таблицы create & table имеют
- 54. increments('id') — создает автоинкрементное поле с названием id timestamps() — создает 2 поля created_at и updated_at,
- 55. Класс Blueprint содержит: методы, названные по типу поля, которое оно создает (bigInteger, char, date, integer, longText,
- 56. В методах создания полей параметры: название поля длина поля, массив значения (для enum) для полей типа
- 57. php artisan migrate миграции будут запущены в порядке создания если это первый запуск миграции, то в
- 58. Выполнятся все не выполненные ранее миграции. После того, как миграции будут выполнены — в таблице migrations
- 59. SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is
- 60. откат миграций: php artisan migrate:rollback откат миграций только конкретного количества миграций: php artisan migrate:rollback --step=2 МИГРАЦИИ:
- 61. откатить сразу все миграции php artisan migrate:reset выполнить откат и запуск всех миграций сразу: php artisan
- 62. МИГРАЦИИ: ВНЕСЕНИЕ ИЗМЕНЕНИЙ При необходимости внести изменения в миграцию (таблицу), если она уже отправлена в git,
- 63. При переключении между ветками в git может возникнуть проблема: в базе данных миграция указана как выполненная,
- 64. ЗАПРОСЫ В БАЗУ ДАННЫХ Написание запросов: $users = DB::select('select * from users'); $results = DB::select('select *
- 65. КОНСТРУКТОР ЗАПРОСОВ В БД $user = DB::table('users')->where('name', 'John')->first(); where() имеет 2 или 3 параметра. Если параметра
- 66. Выбрать все значения из таблицы можно методами all() и get(): $users = DB::table('users')->all(); $users = DB::table('users')->get();
- 67. value() возвращает одно значение: $email = DB::table('users')->where('name', 'John')->value('email'); pluck() возвращает коллекцию - целиком или один столбец:
- 68. Кроме того, возможно задавать, какие конкретно поля нужно выбирать: $users = DB::table('users')->select('name', 'email as user_email')->get(); В
- 69. В конструкторе также реализована поддержка как innerJoin: $users = DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->select('users.*', 'contacts.phone')
- 70. А также «перемножения» таблиц: $users = DB::table('sizes')->crossJoin('colours')->get(); Доступны и методы groupBy() и having(): $users = DB::table('users')
- 71. orWhere('fieldName', 'value1') whereBetween('fieldName', ['value1', 'value2']) whereNotBetween('fieldName', ['value1', 'value2']) whereIn('fieldName', ['value1', 'value2', ...]) whereNotIn('fieldName', ['value1', 'value2', ...])
- 72. Сортировка методом orderBy(): $users = DB::table('users')->orderBy('sort'); $users = DB::table('users')->orderBy('sort', desc,); КОНСТРУКТОР ЗАПРОСОВ В БД
- 73. Конструктор поддерживает построение запросов и для INSERT, UPDATE, DELETE. DB::table('users')->insert(['email' => 'john@example.com', 'votes' => 0]); DB::table('users')->where('id',
- 74. Для того, чтобы посмотреть, какой запрос формирует конструктор запросов, есть метод toSql(): $posts = DB::table('posts')->where('id', '>',
- 75. Результат выполнения запроса — коллекция. Коллекция — это объект, содержащий набор элементов. Для создания коллекции: collect()
- 76. Все данные в коллекции лежат в свойствах объектов. $user = DB::table('users')->where('name', 'John')->first(); Свойство name будет доступно
- 77. count() toArray() toJson() first() last() filter() map() — проходит по всем элементам коллекции, выполняя действия с
- 78. БАЗА ДАННЫХ: SEEDER Первичные данные задаются через Seeder. Seeder — это класс с единственным методом run(),
- 79. SEEDER: ЗАПУСК php artisan db:seed php artisan migrate --seed php artisan db:seed --class=MySeeder При этом, каждый
- 80. Недостаток: нет информации, запускался ли Seeder. Решение: Подключить seeder в миграцию (new \MySeeder())->run(); SEEDER: ЗАПУСК
- 81. МОДЕЛИ Модель – это класс, используемый для описания некоторой сущности. Модель позволяет абстрагироваться от способа хранения
- 82. МОДЕЛИ ELOQUENT Eloquent — красивая и простая реализация шаблона ActiveRecord в Laravel для работы с базами
- 83. МОДЕЛИ ELOQUENT: СОЗДАНИЕ Создание модели: php artisan make:model Name Name — название модели в единственном числе.
- 84. МОДЕЛИ ELOQUENT: СОЗДАНИЕ Создание модели в другой области видимости: php artisan make:model Admin/User Свойство $table переопределяет
- 85. МОДЕЛИ ELOQUENT: СОЗДАНИЕ use Illuminate\Database\Eloquent\Model; class Name extends Model { protected $table = 'names_table'; protected $primaryKey
- 86. МОДЕЛИ ELOQUENT: TIMESTAMPS При работе с таблицей через модель, при создании записи в поле created_at и
- 87. МОДЕЛИ ELOQUENT: TIMESTAMPS Формат значения полей created_at & updated_at задается свойством $dateformat Константы CREATED_AT и UPDATED_AT
- 88. МОДЕЛИ ELOQUENT: ПОЛУЧЕНИЕ ЗАПИСЕЙ Для получения всех записей из таблицы, используется метод all(): $posts = App\Post::all();
- 89. МОДЕЛИ ELOQUENT: КОНСТРУКТОР ЗАПРОСОВ Eloquent позволяет строить запросы через конструктор запросов: $posts = App\Post::where('status', '>=', 0)->get();
- 90. МОДЕЛИ ELOQUENT: АГРЕГИРУЮЩИЕ ФУНКЦИИ $count = App\Post::where('active', 1)->count(); $min = App\Post::min('updated_at'); $min = App\Post::max('id');
- 91. МОДЕЛИ ELOQUENT: ПОЛУЧЕНИЕ ЗАПИСЕЙ Получить вместо коллекции одну первую запись: $post = App\Post::first(); Получение записи по
- 92. МОДЕЛИ ELOQUENT: ПОЛУЧЕНИЕ ЗАПИСЕЙ Получение нескольких записей по id (вернет коллекцию): $post = App\Post::find([1, 2, 3]);
- 93. МОДЕЛИ ELOQUENT: ПОЛУЧЕНИЕ ЗАПИСЕЙ Вызов 404 ошибки (Not Found Exceptions) при отсутствии записи: $post = App\Post::findOrFail($id);
- 94. МОДЕЛИ ELOQUENT: ПОРЯДОК ЗАПИСЕЙ Метод orderBy() работает с конструктором запросов. $posts = Post::orderBy('sort')->get(); SELECT * FROM
- 95. МОДЕЛИ ELOQUENT: ПОРЯДОК ЗАПИСЕЙ Сортировка в обратном порядке в конструкторе запросов: $posts = Post::orderBy('sort', 'desc')->get(); $posts
- 96. МОДЕЛИ ELOQUENT: ДОСТУП К ЗНАЧЕНИЯМ $posts = Post::all(); foreach ($posts as $post) { echo $post->title; }
- 97. МОДЕЛИ ELOQUENT: СОЗДАНИЕ ЗАПИСИ Создание новой записи — метод save(): $post = new App\Post; $post->title =
- 98. МОДЕЛИ ELOQUENT: СОЗДАНИЕ ЗАПИСИ При использовании метода create(): $post = App\Post::create([title' => 'Some title', body' =>
- 99. МОДЕЛИ ELOQUENT: ОБНОВЛЕНИЕ ЗАПИСИ Для обновления записи нужно изменить свойства записи и вызвать метод save(): $post
- 100. МОДЕЛИ ELOQUENT: ОБНОВЛЕНИЕ ЗАПИСИ Использование метода update(): $post = App\Post::find($id)->update([title' => 'Some title']); При этом поля,
- 101. МОДЕЛИ ELOQUENT: УДАЛЕНИЕ ЗАПИСИ Удаление записи модели Eloquent методом delete(): App\Post::find($id)->delete(); Метод destroy() позволяет удалить запись
- 102. МОДЕЛИ ELOQUENT: SCOPE Scope в Laravel («область запроса») — это некоторые условия выбора. помогают структурировать код
- 103. МОДЕЛИ ELOQUENT: LOCAL SCOPE Local scope уже содержат в себе конкретные условия выборки: class User extends
- 104. МОДЕЛИ ELOQUENT: LOCAL SCOPE Воспользоваться данным методом можно через: $users = User::active()->where('age', '>=', '18')->get(); В данном
- 105. МОДЕЛИ ELOQUENT: DYNAMIC SCOPE Если в scope нужно передать какой-то динамический параметр — такие scope будут
- 106. МОДЕЛИ ELOQUENT: АКСЕССОРЫ (GETTER) Аксессоры — возможность изменить значение поля при обращении к нему вне модели:
- 107. МОДЕЛИ ELOQUENT: МУТАТОРЫ (SETTER) Мутатор — метод, который вызывается перед заданием конкретного свойства модели: function setFirstNameAttribute($value)
- 108. CARBON Для работы с датой/временем в Laravel подключена библиотека Carbon. По умолчанию поля created_at и updated_at
- 109. CARBON Carbon позволяет создавать дату (экземпляр класса Carbon) из входных параметров: $dtToronto = Carbon::createFromDate(2012, 1, 1,
- 110. Полный список методов API можно найти на странице документации: http://carbon.nesbot.com/docs/ CARBON Для данной библиотеки важно установить
- 111. BLADE: ПОДШАБЛОНЫ @include @include('field', ['name' => 'Age', value=> $age]) первый параметр - blade-шаблон, который будет подключен
- 112. BLADE: ПОДШАБЛОНЫ @component @component('components.footer', ['name' => 'Age', value=> $age]) ... @endcomponent 1й и 2й аргументы -
- 113. BLADE: ПОДКЛЮЧЕНИЕ МАСТЕР ШАБЛОНА Дочерний шаблон: @extends('layout.master') @section('title', 'Небольшую строку можно указать так') @section('content') Это контент
- 114. BLADE: ПОДКЛЮЧЕНИЕ МАСТЕР ШАБЛОНА Мастер шаблон: @yield @yield('content') Для extends также можно передать 2м параметром переменные
- 115. ОБРАБОТКА ЗАПРОСА Illuminate\Http\Request При работе с запросом подключаем класс 1м параметром. Остальные параметры указываются после него.
- 116. ОБРАБОТКА ЗАПРОСА: ПОЛУЧЕНИЕ URL Получить часть запроса без параметров uri: $uri = $request->path(); Получить полную строку
- 117. ОБРАБОТКА ЗАПРОСА: ПОЛУЧЕНИЕ МЕТОДА Получение названия метода запроса: $method = $request->method(); Проверка на соответствие используемого метода
- 118. ОБРАБОТКА ЗАПРОСА: ПОЛУЧЕНИЕ ДАННЫХ Для получения переменной из запроса есть метод input(): $name = $request->input('name'); Второй
- 119. ОБРАБОТКА ЗАПРОСА: ПОЛУЧЕНИЕ ДАННЫХ Получение данных запроса, через свойства объекта: $name = $request->name; Использование функции-хелпера request()
- 120. ОБРАБОТКА ЗАПРОСА: ПОЛУЧЕНИЕ ДАННЫХ Получение всех данные из запроса с помощью метода all(): $input = $request->all();
- 121. ОБРАБОТКА ЗАПРОСА: ПРОВЕРКА ДАННЫХ Проверка существования переменной в запросе: if ($request->has('name')) { } Возможно проверять сразу
- 122. ОБРАБОТКА ЗАПРОСА: СОХРАНЕНИЕ ФАЙЛА Проверка отправки файла в запросе: request()->hasFile('image') Получить путь к файлу можно через
- 123. ОБРАБОТКА ЗАПРОСА: РАБОТА С ФАЙЛОМ path() — получает путь сохраненного файла: $request->file('image')->path(); extension() — получение расширения
- 124. ОБРАБОТКА ЗАПРОСА: СОХРАНЕНИЕ ЗАГРУЖЕННОГО ФАЙЛА Сохранение загруженного файла в директории. $request->file('image')->store($destination, $disk); $destination — директория, в
- 125. STORAGE: РАБОТА С ФАЙЛАМИ Позволяет использовать несколько хранилищ (дисков/подключений): локальное хранилище FTP сервис S3 (Amazon) сервис
- 126. STORAGE: НАСТРОЙКА ПОДКЛЮЧЕНИЙ config/filesystems.php default — подключение по-умолчанию disks (массив) — сами подключения. По умолчанию уже
- 127. STORAGE: НАСТРОЙКА ПОДКЛЮЧЕНИЙ driver (для работы с файловой системой используется драйвер local) root — основная папка
- 128. STORAGE: ОСНОВНЫЕ МЕТОДЫ Чтобы воспользоваться методами Storage обязательно нужно указать его использование: use Illuminate\Support\Facades\Storage; По-умолчанию выбрано
- 129. STORAGE: ОСНОВНЫЕ МЕТОДЫ Получение файла: $contents = Storage::get('file.jpg'); Формирование пути (url): $url = Storage::url('file1.jpg'); Получение размера
- 130. STORAGE: ОСНОВНЫЕ МЕТОДЫ Получение даты последнего изменения файла: $time = Storage::lastModified('file1.jpg'); Записать информацию в начало файла:
- 131. STORAGE: ОСНОВНЫЕ МЕТОДЫ Копирование файла: Storage::copy('old/file1.jpg', 'new/file1.jpg'); Перемещение файла: Storage::move('old/file1.jpg', 'new/file1.jpg'); Удаление файла: Storage::delete('file.jpg');
- 132. STORAGE: ОСНОВНЫЕ МЕТОДЫ При использовании методов copy(), move() - стоит помнить, что эти методы работают только
- 133. STORAGE: ОСНОВНЫЕ МЕТОДЫ Создание и удаление директорий: Storage::makeDirectory($directory); Storage::deleteDirectory($directory);
- 134. STORAGE: ГЕНЕРАЦИЯ URL Формирование пути к файлу для веб-сервера — Storage::url() Если хост настроен верно, то
- 135. STORAGE: ГЕНЕРАЦИЯ URL Кроме этого, Laravel для генерации url к файлам использует директиву APP_URL, которую нужно
- 136. ВАЛИДАЦИЯ В LARAVEL В фреймворке имеются встроенные средства для валидации запроса. При отправке запроса с неверными
- 137. Валидация в Laravel Есть 2 варианта, как можно добавить валидацию в методе контроллера: Внутри метода Через
- 138. ВАЛИДАЦИЯ В LARAVEL ВНУТРИ МЕТОДА Валидация внутри метода контроллера: public function store(Request $request) { $this->validate($request, [
- 139. ВАЛИДАЦИЯ В LARAVEL: ОБЪЕКТ REQUEST Для вынесения валидации в отдельный объект, нужно создать объект типа Request:
- 140. ВАЛИДАЦИЯ В LARAVEL: ОБЪЕКТ REQUEST файл запроса будет создан в папке app/Http/Requests 2 метода: authorize() и
- 141. ВАЛИДАЦИЯ В LARAVEL: ПРАВИЛА ВАЛИДАЦИИ Правила валидации указываются внутри массива, где ключом является поле, для которого
- 142. ВАЛИДАЦИЯ В LARAVEL: ПРАВИЛА ВАЛИДАЦИИ between:max,min — значение между min и max boolean — значение true,
- 143. ВАЛИДАЦИЯ В LARAVEL: ПРАВИЛА ВАЛИДАЦИИ max:value — не более value символов min:value — не менее value
- 144. ВАЛИДАЦИЯ В LARAVEL: СООБЩЕНИЯ Переопределение сообщений об ошибке: При валидации методом validate() внутри экшина, сообщения указываются
- 145. ВАЛИДАЦИЯ В LARAVEL: СООБЩЕНИЯ Сообщения об ошибках валидации указываются по схеме: ключ — название правила валидации
- 146. ВАЛИДАЦИЯ В LARAVEL: СООБЩЕНИЯ В сообщении можно использовать :attribute — имя поля параметры из правила валидации
- 147. ВАЛИДАЦИЯ В LARAVEL: СООБЩЕНИЯ При этом, можно для каждого поля указать свои сообщения. Для этого ключом
- 148. ВАЛИДАЦИЯ В LARAVEL: ОТОБРАЖЕНИЕ В представлении, если были получены ошибки валидации, появится $errors с информацией об
- 149. ФОРМЫ И ЗАПОЛНЕННЫЕ ПОЛЯ И ХЕЛПЕР OLD Данные из запроса можно получить через old() Это решает
- 150. MIDDLEWARE Middleware или «Посредники» — представляют из себя удобный механизм фильтрации запросов. Кроме того, они позволяют
- 151. MIDDLEWARE: ВСТРОЕННЫЕ Middleware, проверяющий CSRF-токен в запросе: \App\Http\Middleware\VerifyCsrfToken Middleware убирающий лишние пробелы (trim): \Illuminate\Foundation\Http\Middleware\TrimStrings Middleware, приводящий
- 152. MIDDLEWARE: СОЗДАНИЕ Создание Middlewaren: php artisan make:middleware MyMiddleware Создаст файл app/Http/Middleware/MyMiddleware.php с классом MyMiddleware В файле
- 153. MIDDLEWARE: СОЗДАНИЕ В методе handle() обрабатывается запрос. После выполнения действий внутри middleware, будет продолжена обработка запроса.
- 154. MIDDLEWARE: КАК ПОДКЛЮЧИТЬ К МАРШРУТУ Для подключения middleware к маршруту в Laravel есть несколько способов: 1.
- 155. MIDDLEWARE: КАК ПОДКЛЮЧИТЬ Зарегистрировать для группы маршрутов: В файле app\Http\Kernel.php указать в свойстве $middlewareGroups в нужной
- 156. MIDDLEWARE: РЕГИСТРАЦИЯ Для регистрации алиаса middleware — его следует зарегистрировать в файле app\Http\Kernel.php, добавив его в
- 157. ROUTE: ИМЕНОВАННЫЕ МАРШРУТЫ Каждый маршрут может иметь своё имя. Задается оно следующим образом: Route::get('about', 'PageController@about')->name('about'); или
- 158. ROUTE: ИМЕНОВАННЫЕ МАРШРУТЫ Зачем нужны именованные маршруты? Чтобы нигде жестко не привязывать никакие действия (ссылки, action
- 159. ROUTE: ФОРМИРОВАНИЕ ССЫЛОК Формируются ссылки по маршрутам хелпером route(): 1-м аргументом передается имя маршрута 2-м аргументом
- 160. ROUTE: ФОРМИРОВАНИЕ ССЫЛОК Если параметров несколько, они должны быть переданы в том же порядке, в котором
- 161. ROUTE: СПИСОК МАРШРУТОВ Вывод списка маршрутов в консоли: php artisan route:list
- 162. ROUTE: РЕДИРЕКТ ПО МАРШРУТУ Кроме формирования ссылок, маршруты можно использовать и при редиректах. При формировании ответа,
- 163. ROUTE: ПРОВЕРКА МАРШРУТА Проверка маршрута по имени: public function handle($request, Closure $next) { if ($request->route()->named('profile')) {
- 164. ROUTE: ГРУППИРОВКА ЗАПРОСОВ Указание группе маршрутов посредника (Middleware): Route::middleware(['auth'])->group(function() { Route::get('admin', 'Controller@index'); Route::get('dashboard', 'Controller@dashboard'); }); В
- 165. ROUTE: ГРУППИРОВКА ЗАПРОСОВ Указание Namespace для группы маршрутов: Route::namespace('Auth')->group(function() { Route::get('admin', 'Controller@index'); Route::get('dashboard', 'Controller@dashboard'); }); И
- 166. ROUTE: ГРУППИРОВКА ЗАПРОСОВ Методы, позволяющие работать и с именами маршрутов (name()), и с url маршрутов (prefix()):
- 167. ROUTE: ГРУППИРОВКА ЗАПРОСОВ Методы группировки можно вкладывать друг в друга: Route::prefix('panel')->group(function() { Route::name('panel.')->group(function() { Route::get('dashboard', 'Controller@dashboard')->name('dashboard');
- 168. ROUTE: ГРУППИРОВКА ЗАПРОСОВ Метод group() позволяет указать сразу несколько условий: Route::group([ 'namespace' => 'Admin', 'prefix' =>
- 169. ROUTE: ПОЛУЧЕНИЕ ИНФОРМАЦИИ Также доступ к объекту маршрута можно получить через: $route = Route::current(); Получить имя
- 170. ROUTESERVICEPROVIDER Вся организация работы роутера видна в данном провайдере: Метод map() описывает маршруты Методы mapApiRoutes и
- 172. Скачать презентацию