Статті

Laravel: вступ до маршрутизації laravel

Маршрутизація в Laravel дозволяє користувачам направляти всі запити програми до відповідного контролера. Більшість основних маршрутів у Laravel розпізнають і приймають уніфікований ідентифікатор ресурсу разом із закриттям, забезпечуючи простий і виразний спосіб маршрутизації.

Що таке маршрут (маршрут)?

Шлях — це спосіб створити 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?

Усі шляхи 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.phpo `api.php) і починайте рядок коду з `Route:: `, а потім запит, який ви хочете призначити цьому конкретному маршруту, а потім вкажіть функцію, яка буде виконана після запиту.

Laravel пропонує наступні методи шляху:

  • get
  • post
  • put
  • delete
  • patch
  • options

Шляхи є defiу Laravel у класі Route із HTTP, маршрутом для відповіді та закриття або контролером.

Як створити шляхи в Laravel

Давайте подивимося, як ви можете створювати власні шляхи в Laravel.

Базовий шлях GET

Тепер я збираюся створити базовий шлях, який друкуватиме таблицю помножених на 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 Routing з функцією контролю

У 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

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.

Останні статті

Veeam пропонує найповнішу підтримку програм-вимагачів, від захисту до реагування та відновлення

Coveware від Veeam продовжить надавати послуги реагування на інциденти кібервимагання. Coveware запропонує криміналістику та можливості відновлення…

Квітень 23 2024

Зелена та цифрова революція: як прогнозне технічне обслуговування трансформує нафтову та газову промисловість

Прогнозне технічне обслуговування революціонізує нафтогазовий сектор завдяки інноваційному та проактивному підходу до управління заводом.…

Квітень 22 2024

Британський антимонопольний регулятор викликає тривогу BigTech через GenAI

CMA Великобританії випустило попередження щодо поведінки Big Tech на ринку штучного інтелекту. Там…

Квітень 18 2024

Casa Green: енергетична революція для сталого майбутнього в Італії

Указ «Case Green», розроблений Європейським Союзом для підвищення енергоефективності будівель, завершив свій законодавчий процес з…

Квітень 18 2024

Читайте Innovation своєю мовою

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.

Слідуйте за нами