Inleiding tot Laravel Route Controller

Met deze controllers kunt u uw controllerklassen maken met behulp van methoden die worden gebruikt voor het afhandelen van verschillende aanvragen. Het zou een stuk eenvoudiger zijn als we het concept van laravelroute-controller begrijpen met behulp van een voorbeeld. We zullen stap voor stap gaan om een ​​goed begrip te krijgen van Routing Controllers. Dus hier gaan we met de stappen:

Hoe maak je Laravel Route Controller?

Hier zijn enkele van de stappen voor het maken van laravel routing controllers die hieronder worden uitgelegd:

Stap 1: De allereerste stap zou zijn om een ​​controller te maken. Als u niet bekend bent met het maken van een controller, ga dan door de onderstaande punten voor het maken van een controller, ga anders direct naar stap 2 voor Routing Controllers.

  • Gebruik de onderstaande artisanale opdracht om de controller te maken.

Code:

Php artisan make: Controller MyController

  • MyController.php-bestand wordt gemaakt met de standaardcode zoals hieronder.

Code:

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

Stap 2: Nu moet u deze onderstaande route in het web.php-bestand schrijven.

Code:

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

Hier is de eerste parameter de URL waartoe u toegang wilt, en MyController is duidelijk onze controllernaam. De 'show' zoals u kunt zien in het bestand MyController.php, is de methode. Dus, hier geeft @show aan dat de methode show () zou worden aangeroepen wanneer we de URL '/ post' raken.

Stap 3: U kunt nu coderingslijnen toevoegen zoals hieronder getoond.

Code:

<_?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)
(
//
)
)

Stap 4: Nu is het tijd om de URL te raken. U krijgt een gespecificeerde uitvoer na het invoeren van de URL. Hopelijk hebben we voldoende inzichten in controllers verzameld zodat u nu toegang hebt tot uw Controller. Laten we nu verder gaan over hoe we ook gegevens kunnen doorgeven aan onze controllerklasse. Nogmaals, het zou veel eenvoudiger zijn als we met behulp van een voorbeeld gegevens via parameters zouden doorgeven aan onze controller.

Gegevens worden doorgegeven aan de controller

1. Schrijf deze onderstaande route in het web.php-bestand:

Code:

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

Het enige verschil bij het definiëren van deze route is dat deze coderegel ook de parameter 'id' bevat met de URL.

2. Wijzig het bestand 'MyController.php' zoals hieronder weergegeven.

Code:

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

Hier is het enige verschil in de methode show () dat we het hebben gewijzigd door de parameter 'id' door te geven in de show () -methode.

3. Nogmaals, laten we de URL in onze browser openen. Afhankelijk van de parameter krijgt u uitvoer.

namespaces

Hier is een stukje informatie over naamruimten:

Bij het definiëren van de methode Route :: get () voor onze controllerklasse, is het niet nodig om de volledige naamruimte voor de controller te vermelden, omdat 'RouteServiceProvider' bijna al uw routebestanden in een routegroep laadt waarin de naamruimte is opgenomen. U hoeft alleen dat gedeelte van de naam op te geven dat na App / Http / Controllers komt.

Als het volledige pad van de controllerklasse bijvoorbeeld App / Http / Controllers / User / UsersController is, hoeft de volledige naamruimte niet te worden vermeld. U kunt de route eenvoudig als volgt definiëren:

Code:

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

Enkele actie controller

Als u de controller met één actie wilt definiëren, kunt u dit doen door een enkele methode '__invoke' op uw controller te plaatsen. Er wordt gezegd dat PHP een aantal ongelooflijk magische functies heeft en de '__invoke'-functie maakt die magische lijst goed. Met behulp van deze magische '__invoke' functie, kunt u klasse definiëren met behulp van slechts één PHP-functie '__invoke' erin, en op elk moment wanneer het object wordt aangeroepen, zal het op zijn beurt de methode '__invoke' direct aanroepen zonder zelfs handmatig $ obj-> randomFunction () genoemd.

Nu rijst de vraag, waar kunt u het gebruiken? Eerlijk genoeg is het onze psychologie om deze vraag te stellen telkens we nieuwe functionaliteit tegenkomen. Dit kan bijvoorbeeld worden gebruikt bij de implementatie van SRP (Single Responsibility Principle). Zoals we hierboven een controller hebben gemaakt met behulp van de artisanale opdracht, op dezelfde manier met php artisan: make controller MyController, ziet de codering van het MyController-bestand er als volgt uit:

Code:

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

Het is goed om coderegels toe te voegen voor de methode __invoke () in de klasse MyController. Hier is een voorbeeld van hoe de klasse eruit zal zien na het toevoegen van code.

Code:

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

Nu moet het web.php-bestand worden aangepast, aangezien het als enige verantwoordelijk is voor alle actie-afhandeling. De coderegel ziet er ongeveer zo uit:

Code:

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

Deze regel code raakt de functie '__invoke ()' van onze MyController-klasse. Hieruit kan worden geconcludeerd dat u niet noodzakelijk de functie @invoke hoeft te schrijven om toegang te krijgen tot controllers met één actie.

Opmerking: in het geval dat u geen actie opgeeft, dat wil zeggen dat u de methode __invoke () niet opgeeft, wordt een fout met ongeldige route-actie gegenereerd, bijvoorbeeld UnexpectedValueExpression.

Inzichten voor het maken van Laravel-routes

Elke route in Laravel wordt gedefinieerd in routebestanden. Deze routebestanden zijn te vinden in de submap met routes. Het is niet nodig om deze bestanden handmatig te laden, omdat ze automatisch worden geladen door het raamwerk van Laravel. Het routebestand van uw applicatie wordt opgeslagen in het bestand 'app / Http / routes.php'. Algemene routing voor elk verzoek in Laravel ziet er als volgt uit:

Code:

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

Code:

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

Mechanisme van routing

Het routeringsmechanisme kan worden begrepen met drie stappen die volgen:

  • Maak eerst een root-URL en voer deze uit.
  • Zorg ervoor dat uw URL overeenkomt met de methoden in het root.php-bestand, alleen dan worden alle gerelateerde functies uitgevoerd.
  • De functie roept eerst sjabloonbestanden aan en vervolgens wordt functieweergave () aangeroepen met een bestandsnaam in resources / views /.

Conclusie

Hopelijk hebben we tot nu toe een behoorlijk aantal Laravel Route Controller-concepten geleerd waarmee u uw eigen Laravel-routingcontroller voor uw toepassing kunt maken, die tegelijkertijd veilig en krachtig is.

Aanbevolen artikelen

Dit is een gids voor Laravel Route Controller. Hier bespreken we de gegevens die worden doorgegeven aan de controller, naamruimten, enkele actie-controller en verschillende stappen om een ​​Laravel te maken. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Wat is Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Laravel-opdrachten