От автора: в Laravel маршрутизация предназначена для направления запроса к соответствующему контроллеру. Маршруты приложения могут быть определены в файле app/Http/routes.php. Ниже приводится общий синтаксис маршрута для каждого из возможных запросов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Route::get('/', function () { return 'Hello World'; }); Route::post('foo/bar', function () { return 'Hello World'; }); Route::put('foo/bar', function () { // }); Route::delete('foo/bar', function () { // }); |
Давайте теперь рассмотрим, как с помощью маршрутизации получить домашнюю страницу Laravel. Пример: app/Http/routes.php
1 2 3 4 |
<?php Route::get('/', function () { return view('welcome'); }); |
resources/view/welcome.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<!DOCTYPE html> <html> <head> <title>Laravel</title> <link href = "//fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet" type = "text/css"> <style> html, body { height: 100%; } body { margin: 0; padding: 0; width: 100%; display: table; font-weight: 100; font-family: 'Lato'; } .container { text-align: center; display: table-cell; vertical-align: middle; } .content { text-align: center; display: inline-block; } .title { font-size: 96px; } </style> </head> <body> <div class = "container"> <div class = "content"> <div class = "title">Laravel 5</div> </div> </div> </body> </html> |
Механизм маршрутизации приведен на следующем изображении —
Давайте теперь рассмотрим его подробнее:
Шаг 1. Сначала нам нужно выполнить корневой URL-адрес приложения.
Шаг 2. Выполненный URL-адрес будет соответствовать методу в файле route.php. В нашем случае он будет соответствовать корневому URL (‘/’). Таким образом будет выполнена соответствующая функция.
Шаг 3. Функция resources/views/welcome.blade.php вызывает файлы шаблона. Затем данная функция вызывает функцию view() с аргументом «welcome» без использования blade.php. В результате мы получим следующий HTML-код.
Параметры маршрутизации
Часто в приложении на также нужно получить параметры, связанные с URL-адресом. Для этого необходимо соответствующим образом изменить код в файле routes.php. Существует два способа, с помощью которых мы можем получить параметры, переданные с URL-адресом.
Обязательные параметры
Дополнительные параметры
Обязательные параметры
Эти параметры должны обязательно присутствовать в URL-адресе. Например, вы можете получить идентификатор из URL-адреса, чтобы выполнить с ним определенные действия. Вот пример кода для файла route.php, с помощью которого это можно сделать.
1 2 3 |
Route::get('ID/{id}',function($id){ echo 'ID: '.$id; }); |
Независимо от аргументов, которые мы передаем после корневого URL-адреса (//localhost:8000/ID/5), данный параметр будет храниться в $id, и мы можем использовать его для дальнейшей обработки, однако здесь мы просто выводим его. Мы можем передать его в представление или в контроллер для дальнейшей обработки.
Дополнительные параметры
Существует ряд параметров, которые могут указываться или не указываться в URL-адресе, для таких случаем мы можем использовать необязательные параметры. Наличие этих параметров в URL-адресе не является обязательным. Эти параметры обозначаются символом «?» после имени параметра. Ниже приводится пример кода для файла route.php, используемого для этой цели.
1 2 3 |
Route::get('/user/{name?}',function($name = 'Virat'){ echo "Name: ".$name; }); |
routes.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php // Метод первого маршрута – корневой URL-адрес будет соответствовать этому методу Route::get('/', function () { return view('welcome'); }); //Метод второго маршрута - корневой URL-адрес с идентификатором будет соответствовать этому методу Route::get('ID/{id}',function($id){ echo 'ID: '.$id; }); // Метод третьего маршрута – корневой URL-адрес с именем и без него будет соответствовать этому методу Route::get('/user/{name?}',function($name = 'Virat Gandhi'){ echo "Name: ".$name; }); |
Шаг 1 – В этом коде мы определили три маршрута с методами get для разных целей. Если мы выполним указанный ниже URL-адрес, он выполнит первый метод.
//localhost:8000
Шаг 2 — После успешного выполнения URL-адреса вы получите следующий результат:
Шаг 3. Если мы выполним указанный ниже URL-адрес, будет выполнен второй метод, и идентификатор параметра / параметра будет передан в переменную $id.
//localhost:8000/ID/5
Шаг 4 — После успешного выполнения URL-адреса вы получите следующий результат:
Шаг 5. Если мы выполним указанный ниже URL-адрес, будет выполнен третий метод, а имя необязательного аргумента / параметра будет передано в переменную $name. Последний аргумент «Virat» является необязательным. Если вы удалите его, будет использоваться имя по умолчанию, которое мы передали в функции как «Virat Gandhi»
//localhost:8000/user/Virat
Шаг 6 — После успешного выполнения URL-адреса вы получите следующий результат:
Примечание. Для обозначения параметров может использоваться регулярное выражение.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.