Въведение в маршрутизатора на Laravel

Тези контролери ви позволяват да създавате вашите класове на контролери, като използвате методи, които се използват за обработка на различни заявки. Би било много по-лесно, ако разберем концепцията на контролера на маршрута laravel с помощта на пример. Ще вървим стъпка по стъпка, за да разберем добре контролерите за маршрутизация. И така, тук вървим със стъпките:

Как да създадете Laravel Route Controller?

Ето някои от стъпките за създаване на контролери за маршрутизиране на laravel, които са обяснени по-долу:

Стъпка 1: Първата стъпка ще бъде създаването на контролер. Ако не сте запознати със създаването на контролер, прегледайте по-долу точките за създаване на контролер, в противен случай преминете директно към стъпка 2 за контролерите за маршрутизация.

  • Използвайте по-долу занаятчийската команда, за да създадете контролера.

Код:

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 (Single Princibility Principle). Както направихме контролер по-горе с помощта на командата 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 (), той ще хвърли грешка в Invalid Route Action, т.е. 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 файла, само тогава ще бъдат изпълнени всички свързани функции.
  • Функцията първо извиква шаблонови файлове и след това функцията view () се извиква с име на файл в ресурси / изгледи /.

заключение

Надяваме се, че досега научихме доста голям брой концепции на Laravel Route Controller, които ще ви позволят да създадете свой собствен контролер за маршрутизиране на Laravel за вашето приложение, който ще бъде сигурен и мощен в същото време.

Препоръчителни статии

Това е ръководство за Laravel Route Controller. Тук обсъждаме данните, преминаващи към контролер, пространства с имена, контролер с едно действие и различни стъпки за създаване на Laravel. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Какво е Laravel?
  2. laravel срещу Ruby on Rails
  3. Laravel срещу Codeigniter
  4. Laravel Команди