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

327

Від автора: в 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

resources/view/welcome.blade.php

Laravel
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;
}

Laravel 5

Механізм маршрутизації наведений на рисунку:

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, що використовується для цієї мети.

Route::get(‘/user/{name?}’,function($name = ‘Virat’){
echo “Name: “.$name;
});

routes.php

Крок 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 — Маршрутизація

Примітка. Для позначення параметрів може використовуватися регулярний вираз.