Шлях — це спосіб створити URL-адресу запиту для вашої програми. Ці URL-адреси не обов’язково пов’язувати з певними файлами на веб-сайті, вони читаються людиною та зручні для пошукових систем.
У Laravel шляхи створюються всередині папки файлів routes
. Вони створюються у файлі web.php
для веб-сайтів і всередині api.php
для API.
Ці route
призначаються до групи middleware
мережі, підсвічуючи статус сеансу та безпеку CSRF
. Маршрути в route/api.php
вони не мають стану та призначені групі проміжного програмного забезпечення API.
Попередня установкаdefiLaravel nita поставляється з двома шляхами: один для Інтернету та інший для API. Ось так виглядає шлях для web in web.php
:
Route::get('/', function () {
return view('welcome');
});
Усі шляхи Laravel є definiti у файлах шляху, розташованих у каталозі routes
. Додаток для керування маршрутами, defiзавершено у файлі App\Providers\RouteServiceProvider
, автоматично вибудовує ці файли. Файл route/web.php
defiзачищає шляхи для вашого веб-інтерфейсу.
Це можливо defiзавершіть шлях для цієї дії контролера таким чином:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: метод Route::resource
створює всі основні шляхи, необхідні для програми, і керується через клас контролера.
Коли запит відповідає вказаному URI маршруту, викликається метод show
defiзакінчено в контролері App\Http\ControllersUserController
, передаючи методу параметри маршруту.
Для ресурсів вам потрібно зробити дві речі в додатку Laravel. По-перше, вам потрібно створити шлях до ресурсу Laravel який забезпечує шляхи вставки, оновлення, перегляду та видалення. По-друге, створіть контролер ресурсів, який надає метод для вставки, оновлення, перегляду та видалення.
Попередня установкаdefiLaravel nita має два шляхи: один для Інтернету та інший для API. Ось як виглядає маршрут до Інтернету в web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Проміжне програмне забезпечення Laravel діє як міст між запитом і реакцією. Це може бути якийсь компонент фільтра.
Laravel працювати з a проміжне програмне забезпечення який має завдання підтвердити, чи клієнтська програма перевірена чи ні. Якщо клієнт підтверджено, маршрутизація перенаправляє на домашню сторінку або сторінку входу.
route
Попередній код defiзавершує шлях до домашньої сторінки. Щоразу, коли цей шлях отримує запит get
для /
, поверне view
welcome
.
Усі шляхи Laravel є definiti у вашому routing
, які знаходяться всередині каталогу dei routes
. Отже, l'AppProvidersRouteServiceProvider
програми вирівнює ці записи. Файл route/web.php
містить маршрути, якими керує ваш веб-інтерфейс.
Структура шляху дуже проста. Відкрийте відповідний файл (`web.php
` o `api.php
` ) і починайте рядок коду з `Route:: `
, а потім запит, який ви хочете призначити цьому конкретному маршруту, а потім вкажіть функцію, яка буде виконана після запиту.
Laravel пропонує наступні методи шляху:
get
post
put
delete
patch
options
Шляхи є defiу Laravel у класі Route із HTTP, маршрутом для відповіді та закриття або контролером.
Давайте подивимося, як ви можете створювати власні шляхи в Laravel.
Тепер я збираюся створити базовий шлях, який друкуватиме таблицю помножених на 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
У наведеному вище коді я створив шлях запиту GET для URL-адреси /table
, який надрукує на екрані таблицю помножень 2.
Тепер давайте подивимося той самий код, параметризуючи число, для якого нам потрібна таблиця множення:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
У коді 'number
' між фігурними дужками означає параметр, тобто число, для якого буде розраховано таблицю множення. Щоразу, коли вказано URL-адресу типу /table/n
, то буде надрукована таблиця чисел n
.
Існує також спосіб поєднати обидві функції в одному шляху. Laravel пропонує функцію додаткових параметрів, яка дозволяє додавати додаткові параметри за допомогою знака питання «?» після необов'язкового параметра та попереднього значенняdefiнічний. Давайте розглянемо приклад:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
У наведеному вище коді ми створили наш параметр маршруту, зробивши число необов’язковим, тому якщо користувач маршрутизує `/table
` тоді за замовчуванням буде створено таблицю з 2definite і якщо користувач направляє до `/table/{number}
Потім таблиця чисел 'number'
буде вироблено.
У попередньому прикладі ми створили шлях для створення таблиці множення, але як ми можемо переконатися, що параметр шляху насправді є числом, щоб уникнути помилок під час створення таблиці множення?
У Laravel ви можете defiскиньте обмеження на параметр маршруту за допомогою методу `where
` в екземплярі маршруту. `where
` приймає назву параметра та регулярний вираз для цього параметра.
Тепер давайте подивимося приклад обмеження для нашого параметра `{numero}
`, щоб переконатися, що до функції передається лише число.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
У наведеному вище коді ми використали регулярний вираз для номера шляху. Тепер, якщо користувач намагається здійснити маршрут до /таблиця/№ буде відображено виняток NotFoundHttpException.
У Laravel ви можете defiзавершити метод контролера для шляху. Метод контролера виконує всі дії defiкожного разу, коли користувач отримує доступ до маршруту.
За допомогою наступного коду ми призначаємо метод контролера 'functionname'
на маршрут:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Код починається з `Route::`
і тому defiзавершує метод запиту для шляху. Згодом defiЗавершіть шлях і контролер разом із методом, додавши символ @ перед назвою методу.
У Laravel ви можете defiпридумайте назву для свого шляху. Ця назва часто дуже корисна. Наприклад, якщо ви хочете перенаправити користувача з одного місця в інше, вам не потрібно defiзавершіть повну URL-адресу перенаправлення. Ви можете просто назвати його ім'я. Ти можеш defiзавершіть назву маршруту за допомогою методу `name
` в екземплярі маршруту.
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
})->where('number', '[0-9]+')->name(‘table’);
Тепер я міг би повторно створити URL-адресу для цього шляху за допомогою такого коду:
$url = route('table');
Подібним чином, для переспрямування на цю URL правильний синтаксис буде таким:
return redirect()->route('table');
Route Groups
I Route Groups
, буквально групи шляхів, є важливою функцією Laravel, яка дозволяє групувати шляхи. Групи шляхів корисні, коли потрібно застосувати атрибути до всіх згрупованих шляхів. Якщо ви використовуєте групи шляхів, вам не потрібно застосовувати атрибути окремо до кожного шляху; це дозволяє уникнути дублювання. Це дозволяє ділитися такими атрибутами, як middleware
o namespaces
, сенза defiзавершити ці атрибути на кожному окремому шляху. Ці спільні атрибути можна передати у форматі масиву як перший параметр методу Route::group
.
Синтаксис групи маршрутів
Route::group([], callback);
голуб []: це масив, який передається методу group як перший параметр.
Приклад Route Group
нель web.php
Route::group([], function()
{
Route::get('/first' , function()
{
echo "first way route" ;
});
Route::get('/second' , function()
{
echo "second way route" ;
});
Route::get('/third' , function()
{
echo "third way route" ;
});
});
У коді defiдавайте знайдемо метод група(), який містить два параметри, тобто array
e closure
. Всередині closure
, Ми можемо defiзакінчити скільки route
ми хочемо. У наведеному вище коді ми маємо defiзакінчив три route
.
Якщо через браузер ми отримуємо доступ до URL-адреси localhost/myproject/first
потім втручається перший route
введення в браузері first way route
.
З URL-адресою localhost/myproject/second
потім йде другий route
введення в браузері second way route
.
Поки з URL localhost/myproject/third
потім йде третій route
введення в браузері third way route
.
Route Groups
Префікси route
вони використовуються, коли ми хочемо надати структуру URL, спільну для кількох route
.
Ми можемо вказати префікс для всіх шляхів defiвсередині групи за допомогою параметра масиву префіксів in Route Groups
.
Приклад web.php
Route::group(['prefix' => 'movie'], function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
Код містить три шляхи, до яких можна отримати доступ із таких URL-адрес:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Ми також можемо призначити проміжне програмне забезпечення для всіх маршрутів у групі. Проміжне ПЗ повинно бути defiзавершено перед створенням групи. Щоб дізнатися, як це зробити, прочитайте нашу статтю Проміжне програмне забезпечення Laravel, як це працює.
приклад:
Route::middleware(['age'])->group( function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
Метод name
використовується для префікса кожної назви route
із зазначеним рядком. У методі name
, нам потрібно вказати рядок із кінцевим символом у префіксі.
приклад web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Coveware від Veeam продовжить надавати послуги реагування на інциденти кібервимагання. Coveware запропонує криміналістику та можливості відновлення…
Прогнозне технічне обслуговування революціонізує нафтогазовий сектор завдяки інноваційному та проактивному підходу до управління заводом.…
CMA Великобританії випустило попередження щодо поведінки Big Tech на ринку штучного інтелекту. Там…
Указ «Case Green», розроблений Європейським Союзом для підвищення енергоефективності будівель, завершив свій законодавчий процес з…