არტიკოლი

Laravel: შესავალი ლარაველის მარშრუტიზაციაში

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

რა არის მარშრუტი ლარაველში?

ლარაველის ყველა ბილიკი არის 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 რომელიც უზრუნველყოფს ბილიკების ჩასმას, განახლებას, ნახვას და წაშლას. მეორე, შექმენით რესურსის კონტროლერი, რომელიც უზრუნველყოფს ჩასმის, განახლების, ნახვის და წაშლის მეთოდს.

წინასწარი ინსტალაციაdefiLaravel nita-ს გააჩნია ორი გზა: ერთი ვებისთვის და ერთი API-სთვის. აი, როგორ გამოიყურება მარშრუტი ინტერნეტში web.php-ში:

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

return view(‘welcome’);

});

Laravel Middleware მოქმედებს როგორც ხიდი მოთხოვნასა და რეაქციას შორის. ეს შეიძლება იყოს ერთგვარი ფილტრის კომპონენტი.

Laravel მუშაობა ა საშუალო პროგრამა რომელსაც აქვს დავალება დაადასტუროს კლიენტის განაცხადი დამოწმებულია თუ არა. კლიენტის დადასტურების შემთხვევაში, მარშრუტიზაცია გადამისამართდება მთავარ გვერდზე ან შესვლის გვერდზე.

მეთოდები იმისთვის route

წინა კოდი defiხაზს უსვამს გზას მთავარ გვერდზე. როდესაც ეს მარშრუტი მიიღებს მოთხოვნას get for /, დააბრუნებს view welcome

ლარაველის ყველა ბილიკი არის defiნიტი შენში routing, რომლებიც განთავსებულია დირექტორიაში dei routes. შესაბამისად, l'AppProvidersRouteServiceProvider განაცხადის ხაზები ამ ჩანაწერები. Ფაილი route/web.php შეიცავს მარშრუტებს, რომლებიც იმართება თქვენი ვებ ინტერფეისისთვის.

ბილიკის სტრუქტურა ძალიან მარტივია. გახსენით შესაბამისი ფაილი (`web.phpo `api.php) და დაიწყეთ კოდის ხაზი `Route:: `, რასაც მოჰყვება მოთხოვნა, რომლის მინიჭებაც გსურთ ამ კონკრეტულ მარშრუტზე და შემდეგ მიუთითეთ ფუნქცია, რომელიც შესრულდება მოთხოვნის შემდეგ.

Laravel გთავაზობთ შემდეგი გზების მეთოდებს:

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

ბილიკები არის defiმითითებულია Laravel-ში მარშრუტის კლასში HTTP-ით, პასუხის გასაცემად და დახურვის მარშრუტით, ან კონტროლერით.

როგორ შევქმნათ ბილიკები ლარაველში

ვნახოთ, როგორ შეგიძლიათ შექმნათ თქვენი საკუთარი ბილიკები Laravel-ში.

ძირითადი GET გზა

ახლა მე ვაპირებ შევქმნა ძირითადი გზა, რომელიც დაბეჭდავს 2-ის დროის ცხრილს.

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

ზემოთ მოცემულ კოდში მე შევქმენი GET მოთხოვნის გზა URL-ისთვის /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-ის ნაგულისხმევად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 Routing კონტროლის ფუნქციით

Laravel-ში შეგიძლიათ definish Controller მეთოდი ბილიკისთვის. კონტროლერის მეთოდი ასრულებს ყველა მოქმედებას definite ყოველ ჯერზე, როცა მომხმარებელი მარშრუტზე წვდება.
შემდეგი კოდით ჩვენ ვანიჭებთ კონტროლერის მეთოდს '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);  

dove []: არის ჯგუფის მეთოდზე გადაცემული მასივი, როგორც პირველი პარამეტრი.

მაგალითი Route Group in 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.

ჩვენ შეგვიძლია მივუთითოთ პრეფიქსი ყველა ბილიკისთვის definites ჯგუფში პრეფიქსის მასივის პარამეტრის გამოყენებით 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

შუადღე

ჩვენ ასევე შეგვიძლია მივანიჭოთ Middleware ჯგუფის ყველა მარშრუტს. შუა პროგრამა უნდა იყოს 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

საინფორმაციო ბიულეტენი
არ გამოტოვოთ ყველაზე მნიშვნელოვანი სიახლეები ინოვაციების შესახებ. დარეგისტრირდით, რომ მიიღოთ ისინი ელექტრონული ფოსტით.

ბოლო სტატიები

ინტერფეისის სეგრეგაციის პრინციპი (ISP), მეოთხე SOLID პრინციპი

ინტერფეისის სეგრეგაციის პრინციპი არის ობიექტზე ორიენტირებული დიზაინის ხუთი მყარი პრინციპიდან ერთ-ერთი. კლასს უნდა ჰქონდეს…

14 მაისი 2024

როგორ მოვაწყოთ მონაცემები და ფორმულები საუკეთესოდ Excel-ში, კარგად გაკეთებული ანალიზისთვის

Microsoft Excel არის მონაცემთა ანალიზის საცნობარო ინსტრუმენტი, რადგან ის გთავაზობთ მრავალ ფუნქციას მონაცემთა ნაკრების ორგანიზებისთვის,…

14 მაისი 2024

დადებითი დასკვნა ორი მნიშვნელოვანი Walliance Equity Crowdfunding პროექტისთვის: Jesolo Wave Island და Milano Via Ravenna

Walliance, SIM და პლატფორმა ევროპის ლიდერებს შორის უძრავი ქონების Crowdfunding-ის სფეროში 2017 წლიდან, აცხადებს დასრულებას…

13 მაისი 2024

რა არის Filament და როგორ გამოვიყენოთ Laravel Filament

Filament არის "აჩქარებული" Laravel განვითარების ჩარჩო, რომელიც უზრუნველყოფს რამდენიმე სრული დასტას კომპონენტს. იგი შექმნილია პროცესის გასამარტივებლად…

13 მაისი 2024

ხელოვნური ინტელექტის კონტროლის ქვეშ

„მე უნდა დავბრუნდე, რომ დავასრულო ჩემი ევოლუცია: მე კომპიუტერში საკუთარ თავს პროექტირებას მოვახდენ და სუფთა ენერგია გავხდები. მას შემდეგ რაც დასახლდა…

10 მაისი 2024

Google-ის ახალ ხელოვნურ ინტელექტს შეუძლია დნმ-ის, რნმ-ის და „სიცოცხლის ყველა მოლეკულის“ მოდელირება.

Google DeepMind წარმოგიდგენთ ხელოვნური ინტელექტის მოდელის გაუმჯობესებულ ვერსიას. ახალი გაუმჯობესებული მოდელი უზრუნველყოფს არა მხოლოდ…

9 მაისი 2024

ლარაველის მოდულური არქიტექტურის შესწავლა

Laravel, რომელიც ცნობილია თავისი ელეგანტური სინტაქსითა და ძლიერი მახასიათებლებით, ასევე უზრუნველყოფს მყარ საფუძველს მოდულური არქიტექტურისთვის. იქ…

9 მაისი 2024

წაიკითხეთ ინოვაცია თქვენს ენაზე

საინფორმაციო ბიულეტენი
არ გამოტოვოთ ყველაზე მნიშვნელოვანი სიახლეები ინოვაციების შესახებ. დარეგისტრირდით, რომ მიიღოთ ისინი ელექტრონული ფოსტით.

Follow us