Вступ до контролера маршрутів Laravel
Ці контролери дозволяють створювати свої класи контролерів, використовуючи методи, які використовуються для обробки різних запитів. Було б набагато простіше, якби ми зрозуміли концепцію контролера маршрутів laravel за допомогою прикладу. Ми підемо крок за кроком, щоб добре зрозуміти контролери маршрутизації. Отже, ми йдемо з кроками:
Як створити контролер маршрутів Laravel?
Ось кілька етапів створення контролерів маршрутизації laravel, які пояснені нижче:
Крок 1: Найпершим кроком було б створити контролер. Якщо ви не знайомі зі створенням контролера, перейдіть до наведених нижче пунктів створення контролера, інакше перейдіть безпосередньо до кроку 2 для контролерів маршрутизації.
- Скористайтеся командою artisan нижче для створення контролера.
Код:
Php artisan make: Controller MyController
- Буде створено файл MyController.php, код за замовчуванням як наведено нижче.
Код:
<_?phpnamespace 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: Тепер ви можете додати рядки кодування, як показано нижче.
Код:
<_?phpnamespace 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 буде виглядати так, як показано нижче:
Код:
<_?phpnamespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)
Нам добре додати рядки коду для методу __invoke () у класі MyController. Ось приклад того, як буде виглядати клас після додавання коду.
Код:
<_?phpnamespace 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. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -
- Що таке Laravel?
- laravel vs Ruby on Rails
- Laravel vs Codeigniter
- Команди Ларавеля