लेख

Laravel: Laravel रूटिङ को परिचय

Laravel मा रूटिङले प्रयोगकर्ताहरूलाई उपयुक्त नियन्त्रकमा सबै अनुप्रयोग अनुरोधहरू रूट गर्न अनुमति दिन्छ। Laravel मा धेरैजसो प्राथमिक मार्गहरूले एक समान सम्पत्ति पहिचानकर्तालाई क्लोजरको साथमा पहिचान र स्वीकार गर्दछ, राउटिङको एक सरल र अभिव्यक्त तरिका प्रदान गर्दछ।

रुट (रुट) के हो?

पथ तपाईको अनुप्रयोगको लागि अनुरोध URL सिर्जना गर्ने तरिका हो। यी URL हरू वेबसाइटमा विशिष्ट फाइलहरूसँग सम्बन्धित हुन आवश्यक छैन र मानव पढ्न योग्य र SEO अनुकूल छन्।

Laravel मा, ले फोल्डर भित्र पथहरू सिर्जना गरिन्छ 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तपाइँको वेब इन्टरफेस को लागी मार्गहरु nishes।

È सम्भव 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 a सँग काम गर्नुहोस् मिडलवेयर जसमा ग्राहकको आवेदन प्रमाणित छ वा छैन भनी पुष्टि गर्ने कार्य छ। यदि क्लाइन्ट पुष्टि भएको छ भने, त्यसपछि रूटिङले गृह पृष्ठ वा लगइन पृष्ठमा पुन: निर्देशित गर्दछ।

को लागि विधिहरू route

अघिल्लो कोड defiगृह पृष्ठमा जाने बाटो निश्छ। जब यो मार्गले अनुरोध प्राप्त गर्दछ get प्रति /, फिर्ता गर्नेछ view welcome

सबै Laravel मार्गहरू छन् defiनिति तिम्रो मा routing, जुन निर्देशिका dei भित्र अवस्थित छन् routes। फलस्वरूप, l'AppProvidersRouteServiceProvider आवेदन लाइनहरू यी रेकर्डहरू। फाइल route/web.php तपाईंको वेब इन्टरफेसको लागि व्यवस्थित गरिएका मार्गहरू समावेश गर्दछ।

बाटो संरचना धेरै सरल छ। उपयुक्त फाइल खोल्नुहोस् (`web.phpo `api.php) र संग कोड को लाइन सुरु गर्नुहोस् `Route:: `, अनुरोध पछि तपाईले त्यो विशिष्ट मार्गमा असाइन गर्न चाहानुहुन्छ र त्यसपछि अनुरोध पछि प्रदर्शन गरिने प्रकार्य निर्दिष्ट गर्नुहोस्।

Laravel ले निम्न मार्ग विधिहरू प्रदान गर्दछ:

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

बाटोहरु हुन् defiHTTP को साथ रूट क्लास भित्र Laravel मा nited, जवाफ दिन र बन्द गर्ने मार्ग, वा नियन्त्रक।

Laravel मा मार्गहरू कसरी सिर्जना गर्ने

हेरौं कसरी तपाईं Laravel मा आफ्नै मार्गहरू सिर्जना गर्न सक्नुहुन्छ।

आधारभूत GET मार्ग

अब म एउटा आधारभूत मार्ग सिर्जना गर्न जाँदैछु जसले 2 को समय तालिका छाप्नेछ।

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

माथिको कोडमा, मैले URL को लागि GET अनुरोध मार्ग सिर्जना गरें /table, जसले स्क्रिनमा २ को समय तालिका प्रिन्ट गर्नेछ।

अब उही कोड हेरौं, संख्यालाई प्यारामिटराइज गर्दै जसको लागि हामी गुणन तालिका चाहन्छौं:

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 को तालिका उत्पन्न गर्नेछdefinite र यदि प्रयोगकर्ता रुटमा `/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 रूटिङ

Laravel मा, तपाईं सक्नुहुन्छ defiमार्ग को लागी एक नियन्त्रक विधि nish। एक नियन्त्रक विधिले सबै कार्यहरू गर्दछ definite प्रत्येक पटक प्रयोगकर्ताले मार्ग पहुँच गर्दछ।
निम्न कोडको साथ हामी नियन्त्रक विधि असाइन गर्दैछौं 'functionname' बाटोमा:

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

कोड बाट सुरु हुन्छ `Route::` र यसैले defiमार्गको लागि अनुरोध विधिलाई nishes। पछि, defiविधिको नाम अघि @ प्रतीक थपेर विधिको साथमा आफ्नो पथ र नियन्त्रक समाप्त गर्नुहोस्।

बाटोको नाम दिनुहोस्

Laravel मा, तपाईं सक्नुहुन्छ defiआफ्नो बाटो को लागी एक नाम निश। यो नाम अक्सर धेरै उपयोगी छ। उदाहरणका लागि, यदि तपाइँ प्रयोगकर्तालाई एक स्थानबाट अर्को स्थानमा रिडिरेक्ट गर्न चाहनुहुन्छ भने, तपाइँलाई आवश्यक छैन defiपूर्ण रिडिरेक्ट URL nish। तपाईं केवल उनको नाम दिन सक्नुहुन्छ। तिमी सक्छौ defi` विधि प्रयोग गरेर मार्ग नाम nishname' मार्ग उदाहरणमा।

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विधि पत्ता लगाउनुहोस् समूह(), जसले दुई प्यारामिटरहरू समावेश गर्दछ, अर्थात् 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उपसर्ग एरे विकल्प प्रयोग गरेर समूह भित्र नाइट्स 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

नवाचार न्यूजलेटर
नवीनता मा सबैभन्दा महत्त्वपूर्ण समाचार नछुटाउनुहोस्। तिनीहरूलाई ईमेल द्वारा प्राप्त गर्न साइन अप गर्नुहोस्।

भर्खरका लेखहरू

भविष्य यहाँ छ: कसरी शिपिंग उद्योगले विश्वव्यापी अर्थतन्त्रमा क्रान्ति गर्दैछ

नौसेना क्षेत्र एक साँचो वैश्विक आर्थिक शक्ति हो, जसले 150 बिलियन बजारमा नेभिगेट गरेको छ ...

1 मई 2024

प्रकाशकहरू र ओपनएआईले आर्टिफिसियल इन्टेलिजेन्सद्वारा प्रशोधित सूचनाको प्रवाहलाई विनियमित गर्न सम्झौतामा हस्ताक्षर गर्छन्

गत सोमबार, फाइनान्सियल टाइम्सले OpenAI सँग सम्झौताको घोषणा गर्‍यो। FT ले आफ्नो विश्व स्तरीय पत्रकारिता लाई लाइसेन्स...

30 अप्रिल 2024

अनलाइन भुक्तानीहरू: यहाँ कसरी स्ट्रिमिङ सेवाहरूले तपाईंलाई सधैंभरि भुक्तान गर्छ

लाखौं मानिसहरूले स्ट्रिमिङ सेवाहरूको लागि भुक्तानी गर्छन्, मासिक सदस्यता शुल्क तिर्छन्। यो आम धारणा छ कि तपाईं…

29 अप्रिल 2024

Veeam ले ransomware को लागि सुरक्षा देखि प्रतिक्रिया र रिकभरी को लागी सबै भन्दा व्यापक समर्थन को सुविधा दिन्छ

Veeam द्वारा Coveware ले साइबर जबरजस्ती घटना प्रतिक्रिया सेवाहरू प्रदान गर्न जारी राख्नेछ। Coveware ले फोरेन्सिक र उपचार क्षमताहरू प्रदान गर्दछ ...

23 अप्रिल 2024

आफ्नो भाषामा नवीनता पढ्नुहोस्

नवाचार न्यूजलेटर
नवीनता मा सबैभन्दा महत्त्वपूर्ण समाचार नछुटाउनुहोस्। तिनीहरूलाई ईमेल द्वारा प्राप्त गर्न साइन अप गर्नुहोस्।

हामीलाई पछ्याउनुहोस्