ලිපි

Laravel: laravel routing හැඳින්වීම

Laravel හි මාර්ගගත කිරීම පරිශීලකයින්ට සියලුම යෙදුම් ඉල්ලීම් සුදුසු පාලකය වෙත යොමු කිරීමට ඉඩ සලසයි. Laravel හි බොහෝ ප්‍රාථමික මාර්ග වසා දැමීමක් සමඟ ඒකාකාර වත්කම් හඳුනාගැනීමක් හඳුනාගෙන පිළිගනී, මාර්ගගත කිරීමේ සරල සහ ප්‍රකාශන ක්‍රමයක් සපයයි.

මාර්ගයක් (මාර්ගයක්) යනු කුමක්ද?

මාර්ගය යනු ඔබගේ යෙදුම සඳහා ඉල්ලීම් URL එකක් සෑදීමට මාර්ගයකි. මෙම URL වෙබ් අඩවියක ඇති විශේෂිත ගොනු සමඟ සම්බන්ධ වීමට අවශ්‍ය නොවන අතර මිනිසුන්ට කියවිය හැකි සහ SEO හිතකාමී වේ.

Laravel වලදී, le ෆෝල්ඩරය තුළ මාර්ග නිර්මාණය වේ routes. ඒවා ගොනුවේ නිර්මාණය කර ඇත web.php වෙබ් අඩවි සඳහා සහ ඇතුළත api.php API සඳහා.

ක්වෙස්ටේ route කණ්ඩායමට පවරා ඇත middleware ජාලය, සැසි තත්ත්වය සහ ආරක්ෂාව ඉස්මතු කිරීම CSRF. ඇතුල් වන මාර්ග route/api.php ඒවා අස්ථායී වන අතර API මිඩ්ල්වෙයාර් කණ්ඩායමට පවරා ඇත.
පෙර ස්ථාපනයdefiLaravel nita මාර්ග දෙකක් සමඟ පැමිණේ, එකක් වෙබ් සඳහා සහ එකක් API සඳහා. අන්තර්ජාලයේ ඇති මාර්ගය පෙනෙන්නේ මෙයයි web.php:

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

Laravel හි මාර්ගය කුමක්ද?

සියලුම Laravel මාර්ග වේ defiනාමාවලිය තුළ පිහිටා ඇති මාර්ග ගොනු වල niti routes. මාර්ග කළමනාකරණ යෙදුම, defiගොනුව තුළ නිශ්චය කර ඇත App\Providers\RouteServiceProvider, මෙම ගොනු ස්වයංක්‍රීයව පෙළගැස්වීම ගැන සැලකිලිමත් වේ. ගොනුව route/web.php defiඔබගේ වෙබ් අතුරු මුහුණත සඳහා මාර්ග නිෂ්ප්‍රභ කරයි.

එය කළ හැකි ය defiමෙම පාලක ක්‍රියාව සඳහා මාර්ගයක් පහත පරිදි නිශ්චය කරන්න:

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

Route::resource: ක්රමය Route::resource යෙදුමක් සඳහා අවශ්‍ය සියලුම මූලික මාර්ග නිපදවන අතර පාලක පන්තිය හරහා කළමනාකරණය කෙරේ.

ඉල්ලීමක් නියමිත මාර්ග URI සමඟ ගැළපෙන විට, ක්‍රමය ක්‍රියාත්මක වේ show defiපාලකය තුළ අවසන් App\Http\ControllersUserController, ක්රමයට මාර්ග පරාමිතීන් සම්මත කිරීම.

සම්පත් සඳහා, ඔබ යෙදුම මත දේවල් දෙකක් කළ යුතුය Laravel. පළමුව, ඔබ සම්පත් මාර්ගයක් නිර්මාණය කළ යුතුය Laravel එය මාර්ග ඇතුළත් කිරීම, යාවත්කාලීන කිරීම, බැලීම සහ මකා දැමීම සපයයි. දෙවනුව, ඇතුළත් කිරීම, යාවත්කාලීන කිරීම, බැලීම සහ මකා දැමීම සඳහා ක්රමයක් සපයන සම්පත් පාලකයක් සාදන්න.

පෙර ස්ථාපනයdefiLaravel nita මාර්ග දෙකක් සමඟ පැමිණේ: එකක් වෙබ් සඳහා සහ එකක් API සඳහා. web.php හි වෙබ් වෙත යන මාර්ගය පෙනෙන්නේ කෙසේද යන්න මෙන්න:

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

return view(‘welcome’);

});

Laravel Middleware ඉල්ලීම සහ ප්රතික්රියාව අතර පාලමක් ලෙස ක්රියා කරයි. එය යම් ආකාරයක පෙරහන් සංරචකයක් විය හැකිය.

Laravel සමඟ වැඩ කරන්න මිඩ්ල්වෙයාර් සේවාලාභී යෙදුම සත්‍යාපනය කර තිබේද නැද්ද යන්න තහවුරු කිරීමේ කාර්යය ඇත. සේවාලාභියා තහවුරු කර ඇති අවස්ථාවක, පසුව මාර්ගගත කිරීම මුල් පිටුවට හෝ පිවිසුම් පිටුවට යළි-යොමු කරයි.

සඳහා ක්රම route

පෙර කේතය defiමුල් පිටුවට මාර්ගයක් නිශ්ශබ්ද කරයි. මෙම මාර්ගයට ඉල්ලීමක් ලැබෙන විට get එක් /, ආපසු ලබා දෙනු ඇත view welcome

සියලුම Laravel මාර්ග වේ definiti ඔබේ routing, dei නාමාවලිය තුළ පිහිටා ඇත routes. ප්රතිඵලයක් වශයෙන්, l'AppProvidersRouteServiceProvider යෙදුමේ මෙම වාර්තා පෙළගස්වයි. ගොනුව route/web.php ඔබගේ වෙබ් අතුරු මුහුණත සඳහා කළමනාකරණය කරන මාර්ග අඩංගු වේ.

මාර්ගයේ ව්යුහය ඉතා සරල ය. සුදුසු ගොනුව විවෘත කරන්න (`web.phpo `api.php) සහ කේතයේ රේඛාව ආරම්භ කරන්න `Route:: `, ඔබට එම නිශ්චිත මාර්ගයට පැවරීමට අවශ්‍ය ඉල්ලීමෙන් පසුව ඉල්ලීමෙන් පසුව සිදු කෙරෙන කාර්යය සඳහන් කරන්න.

Laravel පහත මාර්ග ක්‍රම ඉදිරිපත් කරයි:

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

මාර්ග වේ defiHTTP සමඟ මාර්ග පන්තිය තුළ Laravel හි ඇතුළත් කර ඇත, පිළිතුරු දීමට මාර්ගය සහ වසා දැමීම, හෝ පාලකය.

Laravel හි මාර්ග නිර්මාණය කරන්නේ කෙසේද

Laravel හි ඔබේම මාර්ගයක් සාදා ගන්නේ කෙසේදැයි බලමු.

මූලික GET මාර්ගයක්

දැන් මම 2 හි වේලා වගුව මුද්‍රණය කරන මූලික මාර්ගයක් නිර්මාණය කිරීමට යන්නෙමි.

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

ඉහත කේතය තුළ, මම URL සඳහා GET ඉල්ලීම් මාර්ගයක් නිර්මාණය කළෙමි /table, එය තිරයේ 2 හි වේලා වගුව මුද්‍රණය කරයි.

දැන් අපි එකම කේතය බලමු, අපට ගුණ කිරීමේ වගුව අවශ්‍ය අංකය පරාමිතිකරණය කරමින්:

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

කේතය තුළ 'numberවරහන් අතර පරාමිතිය නියෝජනය කරයි, එනම් ගුණ කිරීමේ වගුව ගණනය කරනු ලබන අංකය. වර්ගයේ URL එකක් සඳහන් කර ඇති විට /table/n, එවිට අංක වගුව මුද්රණය කරනු ලැබේ n.

එක් මාර්ගයක් තුළ ලක්ෂණ දෙකම ඒකාබද්ධ කිරීමට ක්රමයක් ද තිබේ. Laravel විසින් විකල්ප පරාමිති විශේෂාංගය ලබා දෙන අතර එය '?' ප්‍රශ්න ලකුණ භාවිතයෙන් විකල්ප පරාමිති එක් කිරීමට ඔබට ඉඩ සලසයි. විකල්ප පරාමිතිය සහ පෙර අගයෙන් පසුවdefiරාත්රී. අපි උදාහරණය බලමු:

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

ඉහත කේතයේ අපි අපගේ මාර්ග පරාමිතිය සෑදුවෙමු, අංකය විකල්පමය කරමින්, පරිශීලකයෙකු ගමන් කරන්නේ නම් `/table` එවිට එය පෙරනිමියෙන් 2 වගුව ජනනය කරයිdefiනයිට් සහ පරිශීලකයෙක් ` වෙත ගමන් කරන්නේ නම්/table/{number}ඉන්පසු අංක වගුව 'number' නිෂ්පාදනය කරනු ඇත.

මාර්ග පරාමිතීන් සඳහා සීමාවන් ලෙස නිත්‍ය ප්‍රකාශන

පෙර උදාහරණයේදී අපි ගුණ කිරීමේ වගුව ජනනය කිරීම සඳහා මාර්ගයක් නිර්මාණය කළෙමු, නමුත් ගුණ කිරීමේ වගුව ජනනය කිරීමේදී දෝෂ මඟහරවා ගැනීම සඳහා මාර්ගයේ පරාමිතිය ඇත්ත වශයෙන්ම අංකයක් බව සහතික කර ගන්නේ කෙසේද?

Laravel දී, ඔබට පුළුවන් defi` ක්‍රමය භාවිතා කරමින් මාර්ග පරාමිතියෙහි සීමාවක් ඉවත් කරන්නwhere"මාර්ග නිදසුන මත. "where` එම පරාමිතිය සඳහා පරාමිති නාමය සහ නිත්‍ය ප්‍රකාශනයක් ගනී.

නවෝත්පාදන පුවත් පත්‍රිකාව
නවෝත්පාදනය පිළිබඳ වැදගත්ම පුවත් අතපසු නොකරන්න. ඒවා විද්‍යුත් තැපෑලෙන් ලබා ගැනීමට ලියාපදිංචි වන්න.

දැන් අපි අපේ ` පරාමිතිය සඳහා බාධාවක් පිළිබඳ උදාහරණයක් බලමු{numero}` ශ්‍රිතයට සංඛ්‍යාවක් පමණක් ලබා දී ඇති බව තහවුරු කර ගැනීමට.

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

ඉහත කේතයේ, අපි මාර්ග අංකය සඳහා සාමාන්‍ය ප්‍රකාශනයක් භාවිතා කළෙමු. දැන්, පරිශීලකයෙකු ගමන් කිරීමට උත්සාහ කරන්නේ නම් /වගුව/අංක පෙන්වනු ඇත NotFoundHttpException ව්‍යතිරේකය.

පාලන කාර්යය සහිත Laravel Routing

Laravel දී, ඔබට පුළුවන් defiමාර්ගයක් සඳහා පාලක ක්රමයක් nish. පාලක ක්රමයක් සියලු ක්රියා සිදු කරයි defiපරිශීලකයෙකු මාර්ගයට පිවිසෙන සෑම අවස්ථාවකම nite.
පහත කේතය සමඟ අපි පාලක ක්‍රමය පවරමු 'functionname' මාර්ගයකට:

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

කේතය ආරම්භ වේ `Route::` නිසා defiමාර්ගය සඳහා ඉල්ලීම් ක්‍රමය නිෂ්ප්‍රභ කරයි. පසුව, defiක්‍රමයේ නමට පෙර @ සංකේතය එක් කිරීමෙන් ක්‍රමය සමඟ ඔබේ මාර්ගය සහ පාලකය අවසන් කරන්න.

මාර්ගයට නමක් දෙන්න

Laravel දී, ඔබට පුළුවන් defiඔබේ මාර්ගයට නමක් දෙන්න. මෙම නම බොහෝ විට ඉතා ප්රයෝජනවත් වේ. උදාහරණයක් ලෙස, ඔබට පරිශීලකයෙකු එක් ස්ථානයක සිට තවත් ස්ථානයකට හරවා යැවීමට අවශ්‍ය නම්, ඔබට එසේ කිරීමට අවශ්‍ය නැත defiසම්පූර්ණ යළි-යොමුවීම් URL එක ඉවත් කරන්න. ඔබට ඔහුගේ නම පමණක් දිය හැකිය. ඔයාට පුළුවන් defi' ක්‍රමය භාවිතයෙන් මාර්ගයේ නම නිෂ් කරන්නname"මාර්ග අවස්ථාවෙහි.

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’);

දැන්, මට පහත කේතය හරහා මෙම මාර්ගය සඳහා url නැවත උත්පාදනය කළ හැකිය:

$url = route('table');

ඒ හා සමානව, මෙම URL වෙත හරවා යැවීම සඳහා, නිවැරදි වාක්‍ය ඛණ්ඩය වනුයේ:

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

Route Groups

I Route Groups, වචනාර්ථයෙන් මාර්ග කණ්ඩායම්, Laravel හි අත්‍යවශ්‍ය අංගයකි, එමඟින් ඔබට මාර්ග කණ්ඩායම් කිරීමට ඉඩ සලසයි. ඔබට සියලු සමූහගත මාර්ග සඳහා උපලක්ෂණ යෙදීමට අවශ්‍ය විට මාර්ග කණ්ඩායම් ප්‍රයෝජනවත් වේ. ඔබ මාර්ග කණ්ඩායම් භාවිතා කරන්නේ නම්, ඔබට එක් එක් මාර්ගයට තනි තනිව උපලක්ෂණ යෙදිය යුතු නැත; මෙය අනුපිටපත් වීම වළක්වයි. වැනි ගුණාංග බෙදා ගැනීමට එය ඔබට ඉඩ සලසයි middleware o namespaces, සෙන්සා defiඑක් එක් මාර්ගයෙහි මෙම ගුණාංග අවසන් කරන්න. මෙම බෙදාගත් ගුණාංග ක්‍රමයට පළමු පරාමිතිය ලෙස අරා ආකෘතියකින් ලබා දිය හැක Route::group.

මාර්ග සමූහයක වාක්‍ය ඛණ්ඩය

Route::group([], callback);  

පරෙවියා []: යනු පළමු පරාමිතිය ලෙස කණ්ඩායම් ක්‍රමයට ලබා දුන් අරාවකි.

උදාහරණය Route Group nel web.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" ;   
   });  
});  

කේතය තුළ, defiඅපි ක්රමය සොයා ගනිමු සමූහය(), පරාමිති දෙක අඩංගු වන, i.e array e closure. ඇතුළත closure, අපිට පුළුවන් defiකීයක් අවසන් කරන්න route අපට අවශ්යයි. ඉහත කේතයේ, අපට තිබේ defiතුනක් අවසන් කළා route.

බ්රවුසරය හරහා නම් අපි URL වෙත පිවිසෙමු localhost/myproject/first එවිට පළමුවැන්නා මැදිහත් වේ route බ්රවුසරයේ ටයිප් කිරීම first way route.

URL එකත් එක්ක localhost/myproject/second එවිට දෙවැන්න පැමිණේ route බ්රවුසරයේ ටයිප් කිරීම second way route.

URL එක සමඟ සිටියදී localhost/myproject/third එවිට තුන්වැන්න පැමිණේ route බ්රවුසරයේ ටයිප් කිරීම third way route.

හි උපසර්ග Route Groups

යන උපසර්ග route අපට බහු වලට පොදු URL ව්‍යුහයක් සැපයීමට අවශ්‍ය විට ඒවා භාවිතා වේ route.

අපට සියලු මාර්ග සඳහා උපසර්ගය නියම කළ හැක defiහි උපසර්ග අරා විකල්පය භාවිතා කරමින් සමූහය තුළ nites Route Groups.

උදාහරණය 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";  
   });  
});  

පහත URL වලින් ප්‍රවේශ විය හැකි මාර්ග තුනක් කේතයේ අඩංගු වේ:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

මිඩ්ල්වෙයාර්

අපට කණ්ඩායමක් තුළ ඇති සියලුම මාර්ග සඳහා මිඩ්ල්වෙයාර් පැවරිය හැකිය. මිඩ්ල්වෙයාර් විය යුතුය defiකණ්ඩායම නිර්මාණය කිරීමට පෙර අවසන්. මෙය කරන්නේ කෙසේදැයි බැලීමට, අපගේ ලිපිය කියවන්න Laravel මිඩ්ල්වෙයාර් එය ක්‍රියා කරන ආකාරය.

උදාහරණය:

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";  
   });  
  
});  

මාර්ග නාම උපසර්ග

ක්රමය name එක් එක් නමේ උපසර්ගය සඳහා භාවිතා වේ route නිශ්චිත තන්තුවක් සමඟ. ක්රමය තුළ name, අපි උපසර්ගයේ පසුපස අක්ෂරයක් සහිත තන්තුව සඳහන් කළ යුතුයි.

උදාහරණයක් web.php

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

Ercole Palmeri

නවෝත්පාදන පුවත් පත්‍රිකාව
නවෝත්පාදනය පිළිබඳ වැදගත්ම පුවත් අතපසු නොකරන්න. ඒවා විද්‍යුත් තැපෑලෙන් ලබා ගැනීමට ලියාපදිංචි වන්න.

මෑතකාලීන ලිපි

Catania Polyclinic හි ඇපල් නරඹන්නෙකු සමඟ, වැඩිදියුණු කළ යථාර්ථයේ නව්‍ය මැදිහත්වීම

Apple Vision Pro වාණිජ නරඹන්නා භාවිතයෙන් අක්ෂි ශල්‍යකර්මයක් Catania Polyclinic හි සිදු කරන ලදී.

3 මැයි 2024

ළමුන් සඳහා පිටු වර්ණ ගැන්වීමේ ප්‍රතිලාභ - සියලුම වයස් කාණ්ඩ සඳහා මැජික් ලෝකයක්

වර්ණ ගැන්වීම හරහා සියුම් මෝටර් කුසලතා වර්ධනය කිරීම ලිවීම වැනි වඩාත් සංකීර්ණ කුසලතා සඳහා දරුවන් සූදානම් කරයි. වර්ණ ගැන්වීමට...

2 මැයි 2024

අනාගතය මෙන්න: නැව් කර්මාන්තය ගෝලීය ආර්ථිකය විප්ලවීය කරන්නේ කෙසේද?

නාවික අංශය සැබෑ ගෝලීය ආර්ථික බලවතෙකු වන අතර එය බිලියන 150 ක වෙළඳපලක් කරා ගමන් කර ඇත.

1 මැයි 2024

ප්‍රකාශකයින් සහ OpenAI කෘත්‍රිම බුද්ධිය මගින් සැකසූ තොරතුරු ගලායාම නියාමනය කිරීමට ගිවිසුම් අත්සන් කරයි

පසුගිය සඳුදා ෆිනෑන්ෂල් ටයිම්ස් OpenAI සමඟ ගිවිසුමක් නිවේදනය කළේය. FT එහි ලෝක මට්ටමේ පුවත්පත් කලාවට බලපත්‍ර ලබා දෙයි…

30 අප්රේල් 2024

ඔබේ භාෂාවෙන් නවෝත්පාදනය කියවන්න

නවෝත්පාදන පුවත් පත්‍රිකාව
නවෝත්පාදනය පිළිබඳ වැදගත්ම පුවත් අතපසු නොකරන්න. ඒවා විද්‍යුත් තැපෑලෙන් ලබා ගැනීමට ලියාපදිංචි වන්න.

පසු අපට