Чтение онлайн

на главную - закладки

Жанры

Laravel – гайд по выживанию
Шрифт:

В принципе, у нас есть четыре типа маршрутов: POST, GET, PUT и DELETE. Они выглядят следующим образом:

<?php

Route::post('/zombie', function {

echo "We want to create a new zombie";

});

Route::get('/zombie', function {

echo 'We want to read or view a zombie';

});

Route::put('/zombie', function {

echo "We want to update an existing zombie";

});

Route::delete('/zombie', function { echo "We want to destroy a zombie";

});

Эти

методы – POST, GET, PUT и DELETE – являются частью архитектуры RESTful, каждый из которых отражает определенное действие:

POST: Создание сущности (Create).

GET: Чтение сущности или нескольких сущностей (Read).

PUT: Обновить сущность (Update).

DELETE: удаление сущности (Delete).

Эта техника также называется CRUD (Create, Read, Update, Delete).

Чаще всего мы будем использовать метод GET, но есть также маршрут, который можно использовать для получения любого метода:

<?php

Route::any('/zombie', function {

echo "Any request from this zombie route";

});

Отлично!

Итак, как мы инициируем наши маршруты из браузера? В большинстве случаев мы используем GET-запрос. Введя site.com/zombie, мы получаем функцию GET. Но как насчет передачи данных?

Легко! Для этого подойдет HTML-форма, подобная этой:

<form method="POST" action="/zombie">

@csrf

@method('PATCH')

<input type="submit">

</form>

При нажатии кнопки submit на этой форме данные будут отправлены на POST-маршрут site.com/zombie.

Обратите внимание на передачу @csrf и дополнительного указания метода. Указание метода необходимо из-за того, что в HTTP не существует метода ‘PATCH’. Таким образом мы даем понять Laravel, какое именно действие нужно совершить с данными из этой формы.

Пример быстрой маршрутизации

Представьте, что перед вами стоит задача убить (удалить) зомби-изгоя! Сначала необходимо создать форму:

<form method="POST" action="/zombie">

@csrf

@method(DELETE)

<input type="hidden" name="id" value="2">

<input type="submit" value="Destroy">

</form>

На

ней отображается кнопка "Уничтожить". Для простоты мы жестко задали идентификатор 2, который, как правило, зависит от конкретного зомби.

Далее, давайте составим маршрут:

<?php

use Illuminate\Http\Request; Route::delete('/zombie', function(Request $request){

$id = $request->id; Zombie::destroy($id);

});

И вот уже нет проблемного зомби с идентификатором 2! Обратите внимание на включение класса Request из Laravel, который перехватывает данные запроса. Вам придется не забыть объявить пространство имен, когда вы захотите использовать объект запроса.

Внимание! Этот пример пока не будет полностью рабочим, так как наша база данных и модели еще находятся в процессе создания. Мы займемся этим в ближайшее время.

Мы использовали закрытие маршрутов. Далее обсудим разницу между закрытием маршрутов и контроллерами маршрутов.

Закрытие маршрута и действия контроллера маршрута

Закрытие маршрута – это непосредственная функция, содержащая код, как показано здесь:

Route::get('/zombie', function{

echo 'Greetings from the Zombie Page!';

});

Для действия контроллера маршрута мы указываем, какой метод контроллера следует вызвать:

Route::get('/zombie', [ZombieController::class, 'index']);

Обращение к /zombie вызывает метод index в ZombieController.

Более подробно мы рассмотрим контроллеры в ближайшее время. Запомните эти различия, и они станут более понятными.

Параметры маршрута

Иногда маршруты требуют параметров.

Например, для просмотра конкретного зомби по адресу site.com/zombie/5 требуется включить в маршрут параметр:

Route::get('/zombie/{id}', function($id){

echo "You've encountered a zombie with ID: " . $id;

});

Если наши модели и база данных работают, то это позволит получить и отобразить информацию о конкретном зомби:

Поделиться:
Популярные книги

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Муж на сдачу

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Муж на сдачу

Мастер 8

Чащин Валерий
8. Мастер
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мастер 8

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10

Кодекс Крови. Книга V

Борзых М.
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга V

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Баронесса. Эхо забытой цивилизации

Верескова Дарья
1. Проект «Фронтир Вита»
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Баронесса. Эхо забытой цивилизации

Барин-Шабарин 2

Гуров Валерий Александрович
2. Барин-Шабарин
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Барин-Шабарин 2

Бестужев. Служба Государевой Безопасности

Измайлов Сергей
1. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Пять попыток вспомнить правду

Муратова Ульяна
2. Проклятые луной
Фантастика:
фэнтези
эпическая фантастика
5.00
рейтинг книги
Пять попыток вспомнить правду

Барон Дубов 6

Карелин Сергей Витальевич
6. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 6

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма