Sissejuhatus Laraveli marsruudikontrolörisse

Need kontrollerid võimaldavad teil luua kontrolleriklasse, kasutades meetodeid, mida kasutatakse mitmesuguste taotluste käsitlemiseks. Oleks palju lihtsam, kui saaksime näite abil aru marsruudipidaja Laravel kontseptsioonist. Läheme samm-sammult, et saada marsruutimiskontrolleritest parem ülevaade. Nii et siirdume järgmiste sammudega:

Kuidas luua Laraveli marsruudi kontrollerit?

Järgnevalt on toodud mõned sammud marsruutimise kontrollerite loomiseks.

1. samm: kõige esimene samm oleks kontrolleri loomine. Kui te pole kontrolleri loomisega kursis, siis minge kontrolleri loomise alltoodud punktidest läbi, vastasel korral liikuge otse marsruutimiskontrollerite 2. sammu juurde.

  • Kontrolleri loomiseks kasutage allolevat käsitsikäsklust.

Kood:

Php artisan make: Controller MyController

  • Luuakse fail MyController.php, mille vaikekood on järgmine.

Kood:

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

2. samm: nüüd peate kirjutama selle marsruudi allpool faili web.php.

Kood:

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

Esimene parameeter on siin URL, millele soovite juurdepääsu, ja MyController on üsna ilmselgelt meie kontrolleri nimi. "Näita", nagu näete failis MyController.php, on meetod. Seega näitab @show siin, et show () meetodit kutsutakse siis, kui vajutame URL-i '/ post'.

3. samm. Nüüd saate kodeerivaid ridu lisada, nagu allpool näidatud.

Kood:

<_?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. samm: nüüd on aeg leida URL. Pärast URL-i sisestamist saate määratud väljundi. Loodetavasti oleme kajastanud piisavalt kontrolöride teadmisi, et pääsete nüüd oma kontrolleri juurde. Liigume nüüd edasi, kuidas saaksime andmeid edastada ka oma kontrolleriklassile. Jällegi oleks palju lihtsam, kui õpiksime näite abil andmete edastamist parameetrite kaudu oma kontrollerile.

Andmete edastamine kontrollerile

1. Kirjutage järgmine marsruut faili web.php:

Kood:

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

Ainus erinevus selle marsruudi määratlemisel on see, et see koodirida sisaldab ka URL-iga parameetrit „id”.

2. Muutke faili 'MyController.php', nagu allpool näidatud.

Kood:

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

Ainus erinevus meetodi show () erinevuses on see, et me modifitseerisime seda parameetri 'id' edastamisel show () meetodil.

3. Lähme jällegi brauserisse URL-i. Saate väljundi sõltuvalt parameetrist.

Nimeruumid

Siin on osa nimeruumidest:

Meie kontrolleriklassi meetodi Route :: get () määratlemisel ei ole vaja mainida kontrolleri täielikku nimeruumi, kuna 'RouteServiceProvider' laadib peaaegu kõik teie marsruudifailid marsruudirühma, mille nimeruum sisaldab seda. Peate lihtsalt täpsustama selle osa nimest, mis tuleb pärast rakendust / Http / Kontrollerid.

Näiteks kui kontrolleri klassi täielik tee on App / Http / Controllers / User / UsersController, siis pole vaja täielikku nimeruumi mainida. Võite marsruudi lihtsalt määratleda järgmiselt:

Kood:

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

Ühetoimeline kontroller

Kui soovite määratleda ühetoimelise kontrolleri, saate seda teha, kui asetate kontrollerile ühe meetodi '__invoke'. Öeldakse, et PHP-l on hämmastavalt maagilisi funktsioone ja funktsioon __invoke muudab selle võlukunsti nimekirja. Selle maagilise '__invoke' funktsiooni abil saate klassi määratleda, kasutades ainult ühte PHP funktsiooni '__invoke', ja igal ajal, kui objekti kutsutakse, kutsub see omakorda otse meetodit __invoke, ilma et peaksite seda isegi käsitsi tegema nimetatakse $ obj-> randomFunction ().

Nüüd tekib küsimus, kus saate seda kasutada? Piisavalt õiglane, see on meie psühholoogia, et küsida seda küsimust iga kord, kui ilmneb mõni uus funktsioon. Näitena saab seda kasutada SRP (ühtse vastutuse põhimõte) rakendamisel. Nagu me tegime eelnimetatud kontrolleri, kasutades käsk artisan, sarnaselt php artisan: make controller MyController, näeb MyControlleri faili kodeerimine välja järgmine:

Kood:

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

Meil on hea lisada MyControlleri klassi __invoke () meetodi koodiread. Siin on näide sellest, kuidas klass pärast koodi lisamist välja näeb.

Kood:

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

Nüüd tuleb faili web.php muuta, kuna see vastutab ainuisikuliselt kõigi toimingute käsitlemise eest. Koodirida näeb välja umbes selline:

Kood:

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

Sellel koodireal on meie klassi MyController funktsioon '__invoke ()'. Siit võib järeldada, et ühe toimingu kontrolleritele pääsemiseks ei pea tingimata kirjutama funktsiooni @invoke.

Märkus. Kui te ei täpsusta ühtegi toimingut, st te ei kirjuta meetodit __invoke (), viskab see vigase marsruudi toimingu vea, st UnexpectedValueExpression.

Sissejuhatus Laraveli marsruutide loomiseks

Laraveli iga marsruut on määratletud marsruudifailides. Need marsruudifailid leiate marsruutide alamkataloogist. Neid faile pole vaja käsitsi laadida, kuna Laraveli raamistik laadib need automaatselt. Teie rakenduse marsruudifail salvestatakse faili 'app / Http / route.php'. Laraveli päringute üldine marsruutimine näeb välja järgmine:

Kood:

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

Kood:

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

Marsruutimismehhanism

Marsruutimismehhanismi saab mõista kolme järgneva sammu abil:

  • Esiteks looge juur-URL ja käivitage see.
  • Veenduge, et teie URL ühtib faili root.php meetoditega, alles siis täidetakse kõik seotud funktsioonid.
  • Funktsioon kutsub esmalt välja mallifailid ja seejärel kutsutakse funktsioonivaade () failinimega ressurssidesse / vaadetesse /.

Järeldus

Loodetavasti oleme siiani õppinud arvukalt Laraveli marsruutikontrolleri kontseptsioone, mis võimaldavad teil oma rakenduse jaoks luua omaenda Laraveli marsruutimiskontrolleri, mis on samal ajal turvaline ja võimas.

Soovitatavad artiklid

See on teejuht Laravel Route Controller. Siin käsitleme kontrollerile edastatavaid andmeid, nimeruume, ühetoimelist kontrollerit ja erinevaid samme Laraveli loomiseks. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Mis on Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Laraveli käsud

Kategooria: