Вступ до контролера маршрутів Laravel

Ці контролери дозволяють створювати свої класи контролерів, використовуючи методи, які використовуються для обробки різних запитів. Було б набагато простіше, якби ми зрозуміли концепцію контролера маршрутів laravel за допомогою прикладу. Ми підемо крок за кроком, щоб добре зрозуміти контролери маршрутизації. Отже, ми йдемо з кроками:

Як створити контролер маршрутів Laravel?

Ось кілька етапів створення контролерів маршрутизації laravel, які пояснені нижче:

Крок 1: Найпершим кроком було б створити контролер. Якщо ви не знайомі зі створенням контролера, перейдіть до наведених нижче пунктів створення контролера, інакше перейдіть безпосередньо до кроку 2 для контролерів маршрутизації.

  • Скористайтеся командою artisan нижче для створення контролера.

Код:

Php artisan make: Controller MyController

  • Буде створено файл MyController.php, код за замовчуванням як наведено нижче.

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function show($id)
(
//
)
)

Крок 2: Тепер ви повинні записати це нижче маршруту у файл web.php.

Код:

Route::get('/post', ' ');

Тут перший параметр - це URL-адреса, до якої ви хочете отримати доступ, і MyController досить очевидно наше ім'я контролера. "Показати", як ви бачите у файлі MyController.php, є методом. Отже, @show тут вказує на те, що метод show () буде викликаний, коли ми потрапимо на URL-адресу "/ post".

Крок 3: Тепер ви можете додати рядки кодування, як показано нижче.

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
/**
*Display resource
*
*/
public function show($id)
(
//
)
/**
*Display resource listing
*
*/
public function index()
(
//
)
/**
*Editing resource
*
*/
public function edit($id)
(
//
)
)

Крок 4: Тепер настав час перейти до URL-адреси. Ви отримаєте вказаний вихід після введення URL-адреси. Сподіваємось, ми висвітлили достатню кількість контролерів про те, що зараз ви зможете отримати доступ до свого контролера. Перейдемо далі до того, як ми також можемо передавати дані в наш клас контролера. Знову ж, було б набагато простіше, якби ми дізнаємось передачу даних через параметри до нашого контролера за допомогою прикладу.

Передача даних в контролер

1. Запишіть цей маршрут нижче у файл web.php:

Код:

Route::get('/post/(id)', ' ');

Єдина відмінність визначення маршруту полягає в тому, що цей рядок коду також містить параметр 'id' з URL.

2. Змініть файл "MyController.php", як показано нижче.

Код:

public function show($id)
(
return “ID is :”.$id;
)

Тут єдиною відмінністю методу show () є те, що ми змінили його, передавши параметр 'id' у методі show ().

3. Знову вдаримо URL-адресу в нашому браузері. Ви отримаєте вихід у залежності від параметра.

Простори імен

Ось інформація про простори імен:

Визначаючи метод Route :: get () для нашого класу контролерів, не потрібно згадувати повний простір імен для контролера, оскільки "RouteServiceProvider" завантажує майже всі ваші файли маршрутів у групі маршрутів, в якій міститься простір імен. Вам просто потрібно вказати ту частину імені, яка з’явиться після App / Http / Controllers.

Наприклад, якщо повний шлях класу контролера - це App / Http / Controllers / User / UsersController, тоді не потрібно згадувати повний простір імен. Ви можете просто визначити маршрут так:

Код:

Route::get('\user', 'User\ ');

Контролер однієї дії

Якщо ви хочете визначити контролер з одною дією, ви зможете це зробити, розмістивши на своєму контролері один метод "__invoke". Кажуть, що PHP має деякі дивовижно магічні функції, а функція '__invoke' входить до цього магічного списку. За допомогою цієї магічної функції '__invoke' ви можете визначити клас, використовуючи лише одну функцію PHP '__invoke' всередині нього, і в будь-який час, коли об’єкт буде викликаний, він у свою чергу безпосередньо викличе метод '__invoke', навіть не маючи вручну називається $ obj-> randomFunction ().

Тепер виникає питання, де ви можете його використовувати? Справедливо кажучи, наша психологія задавати це питання кожного разу, коли ми стикаємося з будь-якими новими функціональними можливостями. Як приклад, це можна використати під час впровадження SRP (єдиного принципу відповідальності). Як ми зробили контролер вище за допомогою команди artisan, подібно до php artisan: зробіть контролер MyController, кодування файлу MyController буде виглядати так, як показано нижче:

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)

Нам добре додати рядки коду для методу __invoke () у класі MyController. Ось приклад того, як буде виглядати клас після додавання коду.

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function __invoke($id)
(
return “ID is :”.$id;
)
)

Тепер файл web.php потрібно змінити, оскільки він несе відповідальність за всі дії. Рядок коду буде виглядати приблизно так:

Код:

Route::get('/post/(id)', 'MyController');

Цей рядок коду потрапить на функцію '__invoke ()' нашого класу MyController. Звідси можна зробити висновок, що вам не обов’язково писати функцію @invoke, щоб отримати доступ до контролерів однієї дії.

Примітка: Якщо ви не вкажете жодної дії, тобто ви не запишете метод __invoke (), він видасть помилку Недійсна дія маршруту, тобто UnexpectedValueExpression.

Інформація про створення Laravel маршрутів

Кожен маршрут у Laravel визначений у файлах маршруту. Ці файли маршрутів можна знайти в підкаталозі маршрутів. Немає необхідності завантажувати ці файли вручну, оскільки вони автоматично завантажуються рамкою Laravel. Файл маршруту вашої програми зберігається у файлі "app / Http / route.php". Загальна маршрутизація для будь-якого запиту в Laravel виглядає так:

Код:

Route::get ('/', anyFunction() (
return 'This is Index';
));

Код:

Route::post ('user/dashboard', anyFunction() (
return 'This is Dashboard';
));

Механізм маршрутизації

Механізм маршрутизації можна зрозуміти за допомогою трьох етапів:

  • По-перше, створіть кореневу URL-адресу та запустіть її.
  • Переконайтеся, що ваша URL-адреса відповідає методам у файлі root.php, лише тоді будуть виконані всі пов'язані функції.
  • Спочатку функція викликає файли шаблонів, а потім вигляд функції () викликається іменем файлу в ресурсах / представленнях /.

Висновок

Сподіваємось, поки що ми дізналися досить багато концепцій Laravel Route Controller, які дозволять вам створити власний контролер маршрутизації Laravel для вашої програми, який одночасно буде безпечним і потужним.

Рекомендовані статті

Це посібник з контролера маршрутів Laravel. Тут ми обговорюємо дані, що передаються до контролера, простори імен, контролер однієї дії та різні кроки для створення Laravel. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Що таке Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Команди Ларавеля