Introducere în Laravel Route Controller

Aceste controlere vă permit să creați clasele dvs. de controler folosind metode care sunt utilizate pentru gestionarea diverselor solicitări. Ar fi mult mai ușor dacă am înțelege conceptul de control al traseului laravel cu ajutorul unui exemplu. Vom merge pas cu pas pentru a înțelege bine controlerele de rutare. Deci, aici mergem cu pașii:

Cum să creezi controlerul Laravel Route?

Iată câteva dintre pașii pentru crearea controlerelor de rutare laravel, care sunt explicate mai jos:

Pasul 1: Primul pas ar fi crearea unui controler. Dacă nu sunteți familiarizat cu crearea unui controler, treceți prin punctele de mai jos ale creării unui controller, altfel treceți direct la pasul 2 pentru Controlere de rutare.

  • Utilizați comanda de mai jos pentru a crea controlerul.

Cod:

Php artisan make: Controller MyController

  • Se va crea fișierul MyController.php al cărui cod implicit este ca mai jos.

Cod:

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

Pasul 2: Acum trebuie să scrieți această rută mai jos în fișierul web.php.

Cod:

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

Aici primul parametru este adresa URL la care doriți să accesați, iar MyController este, evident, numele controlorului nostru. Metoda „arată” așa cum puteți vedea în fișierul MyController.php, este metoda. Așadar, @show aici indică faptul că metoda show () ar fi apelată atunci când atingem adresa URL „/ post”.

Pasul 3: Acum puteți adăuga linii de codare așa cum se arată mai jos.

Cod:

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

Pasul 4: Acum este timpul să atingeți adresa URL. Veți obține o ieșire specificată după introducerea adresei URL. Sperăm, am acoperit suficiente informații despre controlere pentru a putea accesa Controller-ul dvs. acum. Haideți să mergem mai departe acum despre modul în care putem trece și datele la clasa noastră de controler. Din nou, ar fi mult mai ușor dacă am învăța trecerea datelor prin parametri către controlorul nostru cu ajutorul unui exemplu.

Trecerea datelor către controler

1. Scrieți această rută mai jos în fișierul web.php:

Cod:

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

Singura diferență în definirea acestei rute este că această linie de cod conține, de asemenea, parametrul „id” cu adresa URL.

2. Modificați fișierul „MyController.php” așa cum se arată mai jos.

Cod:

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

Aici singura diferență în metoda show () este că am modificat-o trecând parametrul „id” din metoda show ().

3. Din nou, să accesăm adresa URL din browserul nostru. Veți obține rezultate în funcție de parametru.

Spații de nume

Iată o informație despre spațiile de nume:

În timp ce definiți metoda Route :: get () pentru clasa noastră de controler, nu este necesar să menționați spațiul complet de nume pentru controler, deoarece „RouteServiceProvider” încarcă aproape toate fișierele dvs. de rute într-un grup de rute care conține spațiu de nume. Pur și simplu trebuie să specificați acea porțiune a numelui care va veni după App / Http / Controllers.

De exemplu, dacă calea completă a clasei de controler este App / Http / Controllers / User / UsersController, atunci nu este necesar să menționăm spațiul complet de nume. Puteți defini pur și simplu ruta astfel:

Cod:

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

Controlor de acțiune unică

Dacă doriți să definiți controlorul cu o singură acțiune, veți putea face acest lucru prin plasarea unei singure metode „__invoke” pe controler. Se spune că PHP are unele funcții uimitor de magice, iar funcția „__invoke” face obiectul acestei liste magice. Cu ajutorul acestei funcții magice „__invoke”, puteți defini o clasă folosind o singură funcție PHP „__invoke” în cadrul acesteia, iar în orice moment când obiectul va fi apelat, la rândul său, va apela direct la metoda „__invoke” fără să aveți măcar manual numit $ obj-> randomFunction ().

Acum apare întrebarea, unde o puteți folosi? Destul de corect, psihologia noastră este să punem această întrebare de fiecare dată când întâlnim orice funcționalitate nouă. Ca exemplu, acest lucru poate fi utilizat în timpul implementării SRP (Principiul Responsabilității Unice). Așa cum am făcut un controlor de mai sus folosind comanda artisan, în mod similar folosind php artisan: faceți controlerul MyController, codarea fișierului MyController va arăta așa cum se arată mai jos:

Cod:

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

Este bine să adăugăm linii de cod pentru metoda __invoke () din clasa MyController. Iată un exemplu despre cum va arăta clasa după adăugarea de cod.

Cod:

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

Acum, fișierul web.php trebuie să fie modificat, deoarece este singurul responsabil pentru toată gestionarea acțiunilor. Linia de cod va arăta astfel:

Cod:

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

Această linie de cod va atinge funcția '__invoke ()' din clasa noastră MyController. De aici se poate concluziona că nu trebuie neapărat să scrieți funcția @invoke pentru a accesa controlerele cu acțiune unică.

Notă: În cazul în care nu specificați nicio acțiune, adică nu scrieți metoda __invoke (), aceasta va arunca o eroare de acțiune de ruta invalidă, adică UnexpettValueExpression.

Informații pentru crearea rutelor Laravel

Fiecare rută din Laravel este definită în fișiere de rute. Aceste fișiere de rute pot fi găsite în subdirectorul rutelor. Nu este necesară încărcarea manuală a acestor fișiere, deoarece acestea sunt încărcate automat de cadrul lui Laravel. Fișierul de rută al aplicației dvs. este stocat în fișierul 'app / Http / routes.php'. Rutarea generală pentru orice solicitare în Laravel arată astfel:

Cod:

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

Cod:

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

Mecanismul de rutare

Mecanismul de rutare poate fi înțeles cu trei pași care urmează:

  • În primul rând, creați o adresă URL rădăcină și rulați-o.
  • Asigurați-vă că adresa URL se potrivește cu metodele din fișierul root.php, numai atunci toate funcțiile conexe vor fi executate.
  • Funcția invocă mai întâi fișierele șablon și apoi vizualizarea funcției () este apelată cu un nume de fișier în resurse / vizualizări /.

Concluzie

Sperăm că, până acum, am învățat un număr corect de concepte Laravel Route Controller, care vă vor permite să creați propriul dvs. controler de rutare Laravel pentru aplicația dvs., care va fi sigur și puternic în același timp.

Articole recomandate

Acesta este un ghid pentru Controllerul Laravel Route. Aici discutăm datele care trec la controller, spații de nume, controller de acțiune unică și diferiți pași pentru a crea un Laravel. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Ce este Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Comenzi Laravel