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');
});
Ĉ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.
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.php
` o `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.
Ni vidu kiel vi povas krei viajn proprajn vojojn en Laravel.
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.
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.
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.
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.
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
.
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
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";
});
});
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
La maramea sektoro estas vera tutmonda ekonomia potenco, kiu navigis al merkato de 150 miliardoj...
Pasintlunde, la Financial Times anoncis interkonsenton kun OpenAI. FT licencas sian mondklasan ĵurnalismon...
Milionoj da homoj pagas por streaming-servoj, pagante monatajn abonkotizojn. Estas komuna opinio, ke vi...
Coveware de Veeam daŭre liveros servojn de respondaj incidentoj pri ciberĉantaĝo. Coveware ofertos krimmedicinajn kaj solvajn kapablojn...