ፅሁፎች

ላራቬል፡ ወደ ላራቬል ማዘዋወር መግቢያ

በላራቬል ውስጥ ማዘዋወር ተጠቃሚዎች ሁሉንም የመተግበሪያ ጥያቄዎች ወደ ተገቢው ተቆጣጣሪ እንዲያደርሱ ያስችላቸዋል። በላራቬል ውስጥ ያሉ አብዛኛዎቹ ዋና መንገዶች ዩኒፎርም የንብረት መለያ ከመዘጋቱ ጋር ይገነዘባሉ እና ይቀበላሉ፣ ይህም ቀላል እና ገላጭ የሆነ የማዞሪያ መንገድ ነው።

መንገድ (መንገድ) ምንድን ነው?

መንገዱ ለመተግበሪያዎ የጥያቄ URL የሚፈጥሩበት መንገድ ነው። እነዚህ ዩአርኤሎች በድር ጣቢያ ላይ ካሉ የተወሰኑ ፋይሎች ጋር መያያዝ አያስፈልጋቸውም እና ለሰው ሊነበቡ የሚችሉ እና ለ SEO ተስማሚ ናቸው።

በላራቬል ውስጥ፣ በ le አቃፊ ውስጥ ዱካዎች ተፈጥረዋል። routes. በፋይሉ ውስጥ ተፈጥረዋል web.php ለድር ጣቢያዎች, እና ውስጥ api.php ለኤ.ፒ.አይ.

እነዚህ route ለቡድኑ ተመድበዋል middleware አውታረ መረብ, የክፍለ ጊዜ ሁኔታን እና ደህንነትን ማድመቅ CSRF. ውስጥ ያሉት መንገዶች route/api.php አገር አልባ ናቸው እና ለኤፒአይ መካከለኛ ዌር ቡድን ተመድበዋል።
ቅድመ-መጫኑdefiላራቬል ኒታ ከሁለት መንገዶች አንዱ ለድር እና አንድ ለኤፒአይ ይመጣል። ለድር ውስጥ ያለው መንገድ ይህንን ይመስላል web.php:

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

በላራቬል ውስጥ ያለው መንገድ ምንድን ነው?

ሁሉም የላራቬል መንገዶች ናቸው። definiti በማውጫው ውስጥ በሚገኙ የዱካ ፋይሎች ውስጥ 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 ዱካዎችን ማስገባት ፣ ማዘመን ፣ ማየት እና መሰረዝን የሚያቀርብ። በሁለተኛ ደረጃ, ለማስገባት, ለማዘመን, ለመመልከት እና ለመሰረዝ ዘዴን የሚያቀርብ የንብረት መቆጣጠሪያ ይፍጠሩ.

ቅድመ-መጫኑdefiላራቬል ኒታ ከሁለት መንገዶች ጋር አብሮ ይመጣል፡ አንድ ለድር እና አንድ ለኤፒአይ። በ web.php ውስጥ ወደ ድር የሚወስደው መንገድ ምን እንደሚመስል እነሆ፡-

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

return view(‘welcome’);

});

ላራቬል ሚድዌር በጥያቄው እና በምላሹ መካከል እንደ ድልድይ ሆኖ ይሠራል። አንድ ዓይነት የማጣሪያ አካል ሊሆን ይችላል.

Laravel ከ ሀ ጋር መስራት መካከለኛ የደንበኛው ማመልከቻ የተረጋገጠ መሆኑን ወይም አለመሆኑን የማረጋገጥ ተግባር ያለው. ደንበኛው የተረጋገጠ ከሆነ ፣ ከዚያ ማዞሪያው ወደ መነሻ ገጽ ወይም የመግቢያ ገጽ ይመራዋል።

ዘዴዎች ለ route

የቀድሞው ኮድ defiወደ መነሻ ገጽ የሚወስደውን መንገድ ያዘጋጃል። ይህ መንገድ ጥያቄ ሲደርሰው get በሰዓት /፣ ይመለሳል view welcome

ሁሉም የላራቬል መንገዶች ናቸው። defiኒቲ በእርስዎ ውስጥ routing, በማውጫው ውስጥ የሚገኙት dei routes. በዚህም ምክንያት እ.ኤ.አ. l'AppProvidersRouteServiceProvider የመተግበሪያው መስመሮች እነዚህን መዝገቦች. ፋይሉ route/web.php ለድር በይነገጽዎ የሚተዳደሩትን መንገዶች ይዟል።

የመንገዱን መዋቅር በጣም ቀላል ነው. ተገቢውን ፋይል ክፈት (`web.phpo `api.php) እና የኮዱን መስመር በ ጋር ይጀምሩ `Route:: `, ከዚያ በኋላ ለዚያ የተለየ መንገድ ለመመደብ የሚፈልጉት ጥያቄ እና ከዚያም ጥያቄውን ተከትሎ የሚከናወነውን ተግባር ይግለጹ.

ላራቬል የሚከተሉትን መንገዶች ያቀርባል:

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

መንገዶቹ ናቸው። defiበላራቬል ውስጥ በ Route ክፍል ውስጥ በኤችቲቲፒ ፣ ምላሽ የሚሰጡበት እና የሚዘጋበት መንገድ ወይም ተቆጣጣሪው ውስጥ ተሰጥቷል።

በላራቬል ውስጥ መንገዶችን እንዴት መፍጠር እንደሚቻል

በላራቬል ውስጥ የራስዎን መንገዶች እንዴት መፍጠር እንደሚችሉ እንይ።

መሰረታዊ የ GET መንገድ

አሁን የ 2 የጊዜ ሰንጠረዥን የሚታተም መሰረታዊ መንገድ እፈጥራለሁ ።

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

ከላይ ባለው ኮድ ለዩአርኤል የGET ጥያቄ ዱካ ፈጠርኩ። /table, ይህም የ 2 የጊዜ ሰንጠረዥን በስክሪኑ ላይ ያትማል.

አሁን የማባዛት ሠንጠረዡን የምንፈልገውን ቁጥር በመለካት አንድ አይነት ኮድ እንይ፡

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

በኮዱ ውስጥ 'number' በቅንፍዎቹ መካከል መለኪያውን ይወክላል፣ ማለትም የማባዛት ሠንጠረዡ የሚሰላበት ቁጥር። የአይነቱ ዩአርኤል በተገለፀ ቁጥር /table/n, ከዚያም የቁጥር ጠረጴዛው ይታተማል n.

ሁለቱንም ባህሪያት በአንድ መንገድ የማጣመር መንገድም አለ. ላራቬል የጥያቄ ምልክትን በመጠቀም የአማራጭ መለኪያዎችን ለመጨመር የሚያስችልዎትን የአማራጭ መለኪያዎች ባህሪ ያቀርባል. ከአማራጭ መለኪያ እና ከቅድመ ዋጋ በኋላdefiናይቲ ምሳሌውን እንመልከት፡-

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

ከላይ ባለው ኮድ የኛን መስመር መለኪያ ፈጥረናል፣ ቁጥሩን እንደ አማራጭ አድርገነዋል፣ ስለዚህ ተጠቃሚው 'የሚሄድ ከሆነ/table`ከዚያ በነባሪ የ2 ሰንጠረዡን ያመነጫል።definite እና ተጠቃሚ ወደ ` የሚሄድ ከሆነ/table/{number}ከዚያም የቁጥር ሰንጠረዥ 'number' የሚመረተው ይሆናል።

መደበኛ መግለጫዎች ለመንገዶች መመዘኛዎች እንደ ገደቦች

ባለፈው ምሳሌ የማባዛት ሰንጠረዡን ለማመንጨት መንገድ ፈጠርን ነገር ግን የማባዛት ሰንጠረዡን በሚፈጥሩበት ጊዜ ስህተቶችን ለማስወገድ የመንገዱን መለኪያ በትክክል ቁጥር መሆኑን እንዴት ማረጋገጥ እንችላለን?

በላራቬል ውስጥ, ይችላሉ 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 ከቁጥጥር ተግባር ጋር

በላራቬል ውስጥ, ይችላሉ defiለመንገድ የመቆጣጠሪያ ዘዴን ያግኙ። የመቆጣጠሪያ ዘዴ ሁሉንም ድርጊቶች ያከናውናል defiተጠቃሚው መንገዱን በደረሰ ቁጥር nite።
በሚከተለው ኮድ የመቆጣጠሪያ ዘዴን እንመድባለን 'functionname' ወደ መንገድ:

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

ኮዱ የሚጀምረው በ `Route::` እና ስለዚህ defiለመንገድ የጥያቄ ዘዴን ያበላሻል። በመቀጠልም እ.ኤ.አ. defiከዘዴው ስም በፊት የ @ ምልክቱን በመጨመር መንገድዎን እና መቆጣጠሪያዎን ከስልቱ ጋር ያጠናቅቁ።

የመንገዱን ስም ይስጡት

በላራቬል ውስጥ, ይችላሉ defiለመንገድህ ስም ስጥ። ይህ ስም ብዙውን ጊዜ በጣም ጠቃሚ ነው. ለምሳሌ፣ ተጠቃሚን ከአንድ ቦታ ወደ ሌላ ማዞር ከፈለጉ፣ ማድረግ የለብዎትም defiሙሉውን የማዘዋወር ዩአርኤል ይሽጡ። ስሙን ብቻ መስጠት ይችላሉ. ትችላለህ 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 = route('table');

በተመሳሳይ፣ ወደዚህ URL ለማዞር ትክክለኛው አገባብ የሚከተለው ይሆናል፡-

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

Route Groups

I Route Groups, በጥሬው የመንገዶች ቡድኖች, በላራቬል ውስጥ አስፈላጊ ባህሪ ነው, ይህም ዱካዎችን ለመቧደን ያስችልዎታል. ለሁሉም የተመደቡ ዱካዎች ባህሪያትን መተግበር ሲፈልጉ የመንገድ ቡድኖች ጠቃሚ ናቸው። የመንገድ ቡድኖችን ከተጠቀሙ, ባህሪያቱን በእያንዳንዱ መንገድ በተናጠል መተግበር የለብዎትም; ይህ ማባዛትን ያስወግዳል. መሰል ባህሪያትን እንዲያካፍሉ ያስችልዎታል middleware o namespaces፣ senza 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ዘዴውን እንፈልግ ቡድን(), ሁለቱን መመዘኛዎች የያዘው, ማለትም array e closure. ውስጥ closure, እንችላለን defiስንቱን ጨርስ route እንፈልጋለን. ከላይ ባለው ኮድ ውስጥ, አለን defiሶስት ጨርሷል route.

በአሳሽ በኩል ዩአርኤሉን ከደረስን localhost/myproject/first ከዚያም የመጀመሪያው ጣልቃ ይገባል route በአሳሹ ውስጥ መተየብ first way route.

ከዩአርኤል ጋር localhost/myproject/second ከዚያም ሁለተኛው ይመጣል route በአሳሹ ውስጥ መተየብ second way route.

ከዩአርኤል ጋር እያለ localhost/myproject/third ከዚያም ሦስተኛው ይመጣል route በአሳሹ ውስጥ መተየብ third way route.

ቅድመ-ቅጥያዎች የ Route Groups

ቅድመ ቅጥያ የ route ለብዙዎች የጋራ የሆነ የዩአርኤል መዋቅር ለማቅረብ ስንፈልግ ጥቅም ላይ ይውላሉ 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";  
   });  
});  

ኮዱ ከሚከተሉት ዩአርኤሎች ሊደረስባቸው የሚችሉ ሶስት መንገዶችን ይዟል።

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

የመካከለኛ ፕሮግራም

እንዲሁም በቡድን ውስጥ ላሉ ሁሉም መንገዶች መካከለኛ ዌር መመደብ እንችላለን። መካከለኛው እቃ መሆን አለበት defiቡድኑን ከመፍጠሩ በፊት ጨርሷል. ይህንን እንዴት ማድረግ እንደሚቻል ለማየት, ጽሑፋችንን ያንብቡ Laravel middleware እንዴት እንደሚሰራ.

ምሳሌ:

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

የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።

የቅርብ ጊዜ ጽሁፎች

Veeam ከጥበቃ እስከ ምላሽ እና ማገገሚያ ድረስ ለቤዛዌር በጣም አጠቃላይ ድጋፍን ያቀርባል

Coveware by Veeam የሳይበር ዘረፋ የአደጋ ምላሽ አገልግሎቶችን መስጠቱን ይቀጥላል። Coveware የፎረንሲክስ እና የማገገሚያ ችሎታዎችን ያቀርባል…

23 April 2024

አረንጓዴ እና ዲጂታል አብዮት፡- የመተንበይ ጥገና የነዳጅ እና ጋዝ ኢንዱስትሪን እንዴት እየለወጠ ነው።

የመተንበይ ጥገና የዘይት እና ጋዝ ዘርፉን አብዮት እያደረገ ነው፣ ለዕፅዋት አስተዳደር ፈጠራ እና ንቁ አቀራረብ።…

22 April 2024

የዩኬ ፀረ እምነት ተቆጣጣሪ የBigTech ማንቂያ በጄኔአይ ላይ ያስነሳል።

የዩኬ ሲኤምኤ ስለ ቢግ ቴክ ባህሪ በአርቴፊሻል ኢንተለጀንስ ገበያ ላይ ማስጠንቀቂያ ሰጥቷል። እዚያ…

18 April 2024

ካሳ አረንጓዴ፡ ለወደፊት ጣሊያን የኢነርጂ አብዮት

የሕንፃዎችን ኢነርጂ ውጤታማነት ለማሳደግ በአውሮፓ ህብረት የተቀረፀው የ"ኬዝ አረንጓዴ" ድንጋጌ የህግ አውጭ ሂደቱን በ…

18 April 2024

ፈጠራን በቋንቋዎ ያንብቡ

የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።

ይከተሉን