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

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

Жанры

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;

});

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

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

Вдова на выданье

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

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Отморозки

Земляной Андрей Борисович
Фантастика:
научная фантастика
7.00
рейтинг книги
Отморозки

Ведьмак (большой сборник)

Сапковский Анджей
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Ведьмак (большой сборник)

Надуй щеки! Том 2

Вишневский Сергей Викторович
2. Чеболь за партой
Фантастика:
попаданцы
дорама
фантастика: прочее
5.00
рейтинг книги
Надуй щеки! Том 2

Новый Рал 7

Северный Лис
7. Рал!
Фантастика:
попаданцы
5.00
рейтинг книги
Новый Рал 7

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

По воле короля

Леви Кира
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
По воле короля

Фею не драконить!

Завойчинская Милена
2. Феями не рождаются
Фантастика:
юмористическая фантастика
5.00
рейтинг книги
Фею не драконить!

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь

Идеальный мир для Лекаря 22

Сапфир Олег
22. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 22

Новый Рал 3

Северный Лис
3. Рал!
Фантастика:
попаданцы
5.88
рейтинг книги
Новый Рал 3

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Ворон. Осколки нас

Грин Эмилия
2. Ворон
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ворон. Осколки нас