Introduktion till Laravel Route Controller

Med dessa styrenheter kan du skapa dina kontrollklasser med metoder som används för att hantera olika förfrågningar. Det skulle vara mycket lättare om vi förstår konceptet med larvelruttkontroll med hjälp av ett exempel. Vi kommer att gå steg för steg för att få en god förståelse för routingcontrollers. Så här går vi med stegen:

Hur skapar jag Laravel Route Controller?

Här är några av stegen för att skapa larvelvägskontroller som förklaras nedan:

Steg 1: Det allra första steget skulle vara att skapa en kontroller. Om du inte är bekant med att skapa en styrenhet, gå igenom nedanstående punkter för att skapa en styrenhet, annars flyttas direkt till steg 2 för Routing Controllers.

  • Använd kommandot nedan för hantverkare för att skapa kontrollern.

Koda:

Php artisan make: Controller MyController

  • MyController.php-fil skapas vars standardkod är som nedan.

Koda:

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

Steg 2: Nu måste du skriva den här rutten nedan i web.php-filen.

Koda:

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

Här är den första parametern URL som du vill ha åtkomst till, och MyController är ganska uppenbart vårt controllernamn. "Show" som du kan se i filen MyController.php, är metoden. Så, @show här indikerar att metoden show () skulle kallas när vi träffade URL '/ post'.

Steg 3: Du kan nu lägga till kodningslinjer som visas nedan.

Koda:

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

Steg 4: Nu är det dags att slå URL: en. Du kommer att få en specifik utgång efter att du har angett URL: n. Förhoppningsvis har vi täckt tillräckligt med insyn av kontroller för att du kommer att kunna komma åt din controller nu. Låt oss gå vidare nu om hur vi också kan skicka data till vår controller-klass. Återigen skulle det vara mycket lättare om vi lär oss att överföra data genom parametrar till vår controller med hjälp av ett exempel.

Data som skickas till Controller

1. Skriv den här rutten nedan i web.php-filen:

Koda:

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

Den enda skillnaden i att definiera den här rutten är att den här kodraden också innehåller parametern "id" med URL: n.

2. Ändra filen 'MyController.php' som visas nedan.

Koda:

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

Här är den enda skillnaden i metodvisningen () att vi har modifierat den genom att lämna parametern 'id' i metoden show ().

3. Återigen, låt oss slå URL i vår webbläsare. Beroende på parametern får du utdata.

namnrymder

Här är en information om namnutrymmen:

När du definierar metoden Route :: get () för vår controller-klass, finns det inget behov av att nämna det fulla namnområdet för controller eftersom 'RouteServiceProvider' laddar nästan alla dina ruttfiler i en ruttgrupp som innehåller namnutrymme i den. Du behöver helt enkelt ange den del av namnet som kommer efter App / Http / Controllers.

Till exempel, om kontrollerklassens fulla sökväg är App / Http / Controllers / User / UsersController, finns det inget behov av att nämna det fulla namnområdet. Du kan helt enkelt definiera rutten enligt följande:

Koda:

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

Enkel åtgärdskontroller

Om du vill definiera kontrollen med en åtgärd, kan du göra det genom att placera en enda metod '__invoke' på din styrenhet. Det sägs att PHP har några otroligt magiska funktioner och "__invoke" -funktion gör det upp till den magiska listan. Med hjälp av denna magiska "__invoke" -funktion kan du definiera klass med bara en PHP-funktion "__invoke" i den, och när som helst objektet kommer att kallas kommer det i sin tur direkt att ringa metoden '__invoke' utan att ens ha manuellt kallas $ obj-> randomFunction ().

Nu uppstår frågan, var kan du använda den? Tillräckligt bra, det är vår psykologi att ställa denna fråga varje gång vi möter någon ny funktionalitet. Som ett exempel kan detta användas vid implementering av SRP (Single Responsibility Principle). Som vi skapade en kontroller ovan med hjälp av hantverkskommandot, på liknande sätt med hjälp av php hantverkare: gör controller MyController, kodningen av MyController-filen kommer att se ut som visas nedan:

Koda:

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

Vi är bra att lägga till kodrader för metoden __invoke () i MyController-klassen. Här är ett exempel på hur klassen kommer att se ut efter att du har lagt till kod.

Koda:

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

Nu måste web.php-filen ändras eftersom den ensam ansvarar för all åtgärdshantering. Kodraden ser ut så här:

Koda:

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

Denna kodrad kommer att träffa funktionen '__invoke ()' i vår MyController-klass. Härifrån kan man dra slutsatsen att du inte nödvändigtvis behöver skriva @invoke-funktionen för att få åtkomst till kontroller med en åtgärd.

Obs: Om du inte anger någon åtgärd, dvs att du inte skriver metoden __invoke (), kommer det att kasta ett ogiltigt ruttåtgärdsfel, dvs. UnexpectedValueExpression.

Insikter för att skapa Laravel-rutter

Varje rutt i Laravel definieras i ruttfiler. Dessa ruttfiler finns i underkatalogen med rutter. Det finns inget behov att manuellt ladda dessa filer eftersom de automatiskt laddas av Laravels ramverk. Ruttfilen för din applikation lagras i filen 'app / Http / routes.php'. Allmän routing för alla förfrågningar i Laravel ser ut:

Koda:

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

Koda:

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

Mekanism för routing

Rutningsmekanismen kan förstås med tre steg som följer:

  • Först skapar du en root-URL och kör den.
  • Se till att din URL stämmer med metoderna i root.php-filen, först då kommer alla relaterade funktioner att köras.
  • Funktionen påkallar först mallfiler och sedan kallas funktionsvy () med ett filnamn i resurser / vyer /.

Slutsats

Förhoppningsvis hittills har vi lärt oss ett stort antal Laravel Route Controller-koncept som gör att du kan skapa din egen Laravel routing-controller för din applikation, som kommer att vara säker och kraftfull samtidigt.

Rekommenderade artiklar

Detta är en guide till Laravel Route Controller. Här diskuterar vi data som överförs till controller, namnutrymmen, enstaka handkontroller och olika steg för att skapa en Laravel. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Vad är Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Laravel-kommandon

Kategori: