Artikoloj

Laravel: enkonduko al laravel-vojigo

Vojigo en Laravel permesas al uzantoj direkti ĉiujn aplikaĵpetojn al la taŭga regilo. La plej multaj primaraj itineroj en Laravel rekonas kaj akceptas Uniform Asset Identifier kune kun fermo, disponigante simplan kaj esprimmanieron de vojigo.

Kio estas itinero (itinero)?

La vojo estas maniero krei petan URL por via aplikaĵo. Ĉi tiuj URL-oj ne bezonas esti asociitaj kun specifaj dosieroj en retejo kaj estas homlegeblaj kaj SEO-amikaj.

En Laravel, vojoj estas kreitaj ene de la le dosierujo routes. Ili estas kreitaj en la dosiero web.php por retejoj, kaj ene api.php por APIoj.

Ĉi tiuj route estas asignitaj al la grupo middleware reto, elstarigante seancan statuson kaj sekurecon CSRF. La itineroj en route/api.php ili estas sennaciaj kaj estas asignitaj al la API-mezvargrupo.
La antaŭinstalodefiLaravel nita venas kun du vojoj, unu por la retejo kaj unu por la API. Jen kiel aspektas la vojo por retejo en web.php:

Route::get('/', function () {
   return view('welcome');
});

Kio estas itinero en Laravel?

Ĉiuj Laravel-padoj estas definiti en la vojdosieroj situantaj ene de la dosierujo routes. La aplikaĵo pri administrado de itineroj, defifinitaj en la dosiero App\Providers\RouteServiceProvider, zorgas aŭtomate vicigi ĉi tiujn dosierojn. La dosiero route/web.php defifinas la vojojn por via TTT-interfaco.

Ĝi estas ebla defifini vojon por ĉi tiu kontrola ago jene:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: la metodo Route::resource produktas ĉiujn bazajn vojojn postulatajn por aplikaĵo kaj estas administrita per la regila klaso.

Kiam peto kongruas kun la specifita itinero URI, la metodo estas alvokita show defifiniĝis en la regilo App\Http\ControllersUserController, pasante la itinerparametrojn al la metodo.

Por rimedoj, vi devas fari du aferojn sur la aplikaĵo Laravel. Unue, vi devas krei rimedan vojon Laravel kiu provizas enmeti, ĝisdatigi, vidi kaj forigi vojojn. Due, kreu rimedregilon, kiu provizas metodon por enmeti, ĝisdatigi, vidi kaj forigi.

La antaŭinstalodefiLaravel nita venas kun du vojoj: unu por la retejo kaj unu por la API. Jen kiel aspektas la vojo al retejo en web.php:

Route::get(‘/’, function () {

return view(‘welcome’);

});

Laravel Middleware funkcias kiel ponto inter la peto kaj la reago. Ĝi povas esti ia filtrila komponanto.

Laravel labori kun a middleware kiu havas la taskon konfirmi ĉu la klienta aplikaĵo estas kontrolita aŭ ne. En la okazo ke la kliento estas konfirmita, tiam alidirektiloj al la hejmpaĝo aŭ ensaluta paĝo.

La metodoj por la route

La antaŭa kodo defifinas vojon al la hejmpaĝo. Kiam ajn ĉi tiu vojo ricevas peton get po /, redonos la view welcome

Ĉiuj Laravel-padoj estas definiti en via routing, kiuj troviĝas ene de la dosierujo dei routes. Konsekvence, l'AppProvidersRouteServiceProvider de la aplikaĵo vicigas ĉi tiujn rekordojn. La dosiero route/web.php enhavas la itinerojn kiuj estas administritaj por via retinterfaco.

La vojo strukturo estas tre simpla. Malfermu la taŭgan dosieron (`web.phpo `api.php) kaj komencu la linion de kodo per `Route:: `, sekvata de la peto, kiun vi volas asigni al tiu specifa itinero kaj poste specifi la funkcion, kiu estos plenumita post la peto.

Laravel ofertas la sekvajn padmetodojn:

  • get
  • post
  • put
  • delete
  • patch
  • options

La vojoj estas definiita en Laravel ene de la Route-klaso kun HTTP, la itinero por respondi kaj la fermo, aŭ la regilo.

Kiel krei vojojn en Laravel

Ni vidu kiel vi povas krei viajn proprajn vojojn en Laravel.

Baza GET-vojo

Nun mi kreos bazan vojon, kiu presos la tabelon de 2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

En la supra kodo, mi kreis GET-petan vojon por la URL /table, kiu presas la tempotabelon de 2 sur la ekrano.

Nun ni vidu la saman kodon, parametrigante la nombron por kiu ni volas la multiplikan tabelon:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

En la kodo la 'number' inter la krampoj reprezentas la parametron, t.e. la nombron por kiu la multiplika tabelo estos kalkulita. Kiam ajn URL de la tipo estas specifita /table/n, tiam la nombrotabelo estos presita n.

Estas ankaŭ la maniero kombini ambaŭ funkciojn en unu vojo. Laravel ofertas la laŭvolajn parametrojn, kiu ebligas al vi aldoni laŭvolajn parametrojn uzante la demandosignon '?' post la nedeviga parametro kaj la pre-valorodefinokto. Ni vidu la ekzemplon:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

En la supra kodo ni kreis nian itineran parametron, farante la nombron laŭvola, do se uzanto vojigas `/table` tiam ĝi generos la tabelon de 2 defaŭltedefinite kaj se uzanto iras al `/table/{number}Poste la nombrotabelo 'number' estos produktitaj.

Regulaj esprimoj kiel limoj por itinerparametroj

En la antaŭa ekzemplo ni kreis vojon por generi la multiplikan tabelon, sed kiel ni povas certigi, ke la parametro de la vojo estas efektive nombro, por eviti erarojn dum generado de la multiplika tabelo?

En Laravel, vi povas defifini limon sur la itinero-parametro uzante la metodon `where` sur la vojo-instanco. La `where` prenas la parametronomon kaj regulan esprimon por tiu parametro.

Informilo pri novigo
Ne maltrafu la plej gravajn novaĵojn pri novigado. Registriĝi por ricevi ilin retpoŝte.

Nun ni vidu ekzemplon de limo por nia ` parametro{numero}` por certigi, ke nur nombro estas transdonita al la funkcio.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

En la ĉi-supra kodo, ni uzis regulan esprimon por la padonumero. Nun, se uzanto provas iri al /tablo/no estos montrata NotFoundHttpException escepto.

Laravel Routing kun kontrolo funkcio

En Laravel, vi povas defifini Regilo-metodon por itinero. Regila metodo plenumas ĉiujn agojn definite ĉiufoje kiam uzanto aliras la itineron.
Kun la sekva kodo ni atribuas la regilon-metodon 'functionname' al itinero:

Route:: get ( '/home' , 'YourController@functionname' ) ;

La kodo komenciĝas per `Route::` kaj tial defifinas la petan metodon por la vojo. Poste, defiFinu vian vojon kaj regilon kune kun la metodo aldonante la simbolon @ antaŭ la metodonomo.

Donu nomon al la vojo

En Laravel, vi povas defifini nomon por via vojo. Ĉi tiu nomo ofte estas tre utila. Ekzemple, se vi volas redirekti uzanton de unu loko al alia, vi ne devas defifini la plenan alidirektilon URL. Vi povas simple doni lian nomon. Vi povas defifini la itineron per la metodo `name` en la vojo-instanco.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

Nun, mi povus regeneri la URL por ĉi tiu vojo, per la sekva kodo:

$url = route('table');

Simile, por alidirektado al ĉi tiu URL, la ĝusta sintakso estus:

return redirect()->route('table');

Route Groups

I Route Groups, laŭvorte vojgrupoj, estas esenca trajto en Laravel, kiu permesas vin grupigi vojojn. Vojegrupoj estas utilaj kiam vi volas apliki atributojn al ĉiuj grupigitaj vojoj. Se vi uzas vojgrupojn, vi ne devas apliki la atributojn individue al ĉiu vojo; ĉi tio evitas duobligon. Ĝi permesas vin dividi atributojn kiel middleware o namespaces, sen defifini ĉi tiujn atributojn sur ĉiu individua vojo. Ĉi tiuj komunaj atributoj povas esti pasitaj en tabelformato kiel la unua parametro al la metodo Route::group.

Sintakso de Itinera Grupo

Route::group([], callback);  

kolombo []: estas tabelo pasita al la grupmetodo kiel la unua parametro.

Ekzemplo de Route Group nel retejo.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

En la kodo, defini trovu la metodon grupo (), kiu enhavas la du parametrojn, t.e array e closure. Ene de la closure, ni povas defifini kiom da route ni volas. En la supra kodo, ni havas defifinis tri route.

Se per retumilo ni aliras la URL localhost/myproject/first tiam la unua intervenas route tajpante en la retumilo first way route.

Kun la URL localhost/myproject/second poste venas la dua route tajpante en la retumilo second way route.

Dum kun la URL localhost/myproject/third poste venas la tria route tajpante en la retumilo third way route.

Prefiksoj de Route Groups

La prefiksoj de route ili estas uzataj kiam ni volas provizi URL-strukturon komunan al pluraj route.

Ni povas specifi la prefikson por ĉiuj vojoj definits ene de la grupo uzante la prefiksan tabelopcion en Route Groups.

Ekzemplo de web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

La kodo enhavas tri vojojn alireblajn de la sekvaj URL-oj:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Ni ankaŭ povas asigni mezvaron al ĉiuj itineroj ene de grupo. La mezvaro devas esti defifiniĝis antaŭ krei la grupon. Por vidi kiel fari tion, legu nian artikolon Laravel mezprogramo kiel ĝi funkcias.

ekzemplo:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

Vojnomaj prefiksoj

La metodo name estas uzata por prefiksi ĉiun nomon de route kun specifita ŝnuro. En la metodo name, ni devas specifi la ĉenon kun posta signo en la prefikso.

ekzemple web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

Informilo pri novigo
Ne maltrafu la plej gravajn novaĵojn pri novigado. Registriĝi por ricevi ilin retpoŝte.

Lastaj artikoloj

La Estonteco Estas Ĉi tie: Kiel la ŝipindustrio revolucias la tutmondan ekonomion

La maramea sektoro estas vera tutmonda ekonomia potenco, kiu navigis al merkato de 150 miliardoj...

1 Majo 2024

Eldonistoj kaj OpenAI subskribas interkonsentojn por reguligi la fluon de informoj prilaboritaj de Artefarita Inteligenteco

Pasintlunde, la Financial Times anoncis interkonsenton kun OpenAI. FT licencas sian mondklasan ĵurnalismon...

30 aprilo 2024

Interretaj Pagoj: Jen Kiel Fluaj Servoj Faras Vin Pagi Eterne

Milionoj da homoj pagas por streaming-servoj, pagante monatajn abonkotizojn. Estas komuna opinio, ke vi...

29 aprilo 2024

Veeam havas la plej ampleksan subtenon por ransomware, de protekto ĝis respondo kaj reakiro

Coveware de Veeam daŭre liveros servojn de respondaj incidentoj pri ciberĉantaĝo. Coveware ofertos krimmedicinajn kaj solvajn kapablojn...

23 aprilo 2024