Laravel — Маршрутизация

Laravel — Маршрутизация

От автора: в Laravel маршрутизация предназначена для направления запроса к соответствующему контроллеру. Маршруты приложения могут быть определены в файле app/Http/routes.php. Ниже приводится общий синтаксис маршрута для каждого из возможных запросов.

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

<?php
Route::get('/', function () {
  return view('welcome');
});

resources/view/welcome.blade.php

<!DOCTYPE html>
<html>
 
  <head>
 <title>Laravel</title>
 <link href = "https://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>

Механизм маршрутизации приведен на следующем изображении -

Laravel — Маршрутизация

Фреймворк Laravel. Быстрая разработка с фреймворком №1

Узнай тонкости современной веб-разработки с помощью фреймворка Laravel

Узнать подробнее

Давайте теперь рассмотрим его подробнее:

Шаг 1. Сначала нам нужно выполнить корневой URL-адрес приложения.

Шаг 2. Выполненный URL-адрес будет соответствовать методу в файле route.php. В нашем случае он будет соответствовать корневому URL (‘/’). Таким образом будет выполнена соответствующая функция.

Шаг 3. Функция resources/views/welcome.blade.php вызывает файлы шаблона. Затем данная функция вызывает функцию view() с аргументом «welcome» без использования blade.php. В результате мы получим следующий HTML-код.

Laravel — Маршрутизация

Параметры маршрутизации

Часто в приложении на также нужно получить параметры, связанные с URL-адресом. Для этого необходимо соответствующим образом изменить код в файле routes.php. Существует два способа, с помощью которых мы можем получить параметры, переданные с URL-адресом.

Обязательные параметры

Дополнительные параметры

Обязательные параметры

Эти параметры должны обязательно присутствовать в URL-адресе. Например, вы можете получить идентификатор из URL-адреса, чтобы выполнить с ним определенные действия. Вот пример кода для файла route.php, с помощью которого это можно сделать.

Route::get('ID/{id}',function($id){
  echo 'ID: '.$id;
});

Независимо от аргументов, которые мы передаем после корневого URL-адреса (http://localhost:8000/ID/5), данный параметр будет храниться в $id, и мы можем использовать его для дальнейшей обработки, однако здесь мы просто выводим его. Мы можем передать его в представление или в контроллер для дальнейшей обработки.

Дополнительные параметры

Существует ряд параметров, которые могут указываться или не указываться в URL-адресе, для таких случаем мы можем использовать необязательные параметры. Наличие этих параметров в URL-адресе не является обязательным. Эти параметры обозначаются символом «?» после имени параметра. Ниже приводится пример кода для файла route.php, используемого для этой цели.

Фреймворк Laravel. Быстрая разработка с фреймворком №1

Узнай тонкости современной веб-разработки с помощью фреймворка Laravel

Узнать подробнее
Route::get('/user/{name?}',function($name = 'Virat'){
  echo "Name: ".$name;
});

routes.php

<?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-адрес, он выполнит первый метод.

http://localhost:8000

Шаг 2 — После успешного выполнения URL-адреса вы получите следующий результат:

Laravel — Маршрутизация

Шаг 3. Если мы выполним указанный ниже URL-адрес, будет выполнен второй метод, и идентификатор параметра / параметра будет передан в переменную $id.

http://localhost:8000/ID/5

Шаг 4 — После успешного выполнения URL-адреса вы получите следующий результат:

Laravel — Маршрутизация

Шаг 5. Если мы выполним указанный ниже URL-адрес, будет выполнен третий метод, а имя необязательного аргумента / параметра будет передано в переменную $name. Последний аргумент «Virat» является необязательным. Если вы удалите его, будет использоваться имя по умолчанию, которое мы передали в функции как «Virat Gandhi»

http://localhost:8000/user/Virat

Шаг 6 — После успешного выполнения URL-адреса вы получите следующий результат:

Laravel — Маршрутизация

Примечание. Для обозначения параметров может использоваться регулярное выражение.

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Фреймворк Laravel. Быстрая разработка с фреймворком №1

Узнай тонкости современной веб-разработки с помощью фреймворка Laravel

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк Laravel: теория и первая практика

Овладейте азами фреймворка Laravel!

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree