Các bài viết

Laravel: giới thiệu về định tuyến laravel

Định tuyến trong Laravel cho phép người dùng định tuyến tất cả các yêu cầu ứng dụng đến bộ điều khiển thích hợp. Hầu hết các tuyến chính trong Laravel đều nhận dạng và chấp nhận Mã định danh tài sản thống nhất cùng với việc đóng, cung cấp một cách định tuyến đơn giản và rõ ràng.

Lộ trình (lộ trình) là gì?

Đường dẫn là một cách để tạo URL yêu cầu cho ứng dụng của bạn. Các URL này không cần phải được liên kết với các tệp cụ thể trên trang web và có thể đọc được cho con người và thân thiện với SEO.

Trong Laravel, các đường dẫn được tạo bên trong thư mục le routes. Chúng được tạo trong tệp web.php cho các trang web, và trong api.php cho các API.

những route được giao cho nhóm middleware mạng, làm nổi bật trạng thái phiên và bảo mật CSRF. Các tuyến đường trong route/api.php chúng không trạng thái và được gán cho nhóm phần mềm trung gian API.
Cài đặt trướcdefiLaravel nita có hai đường dẫn, một cho web và một cho API. Đây là đường dẫn cho trang web trông như thế nào web.php:

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

Route trong Laravel là gì?

Tất cả các đường dẫn Laravel là definiti trong các tệp đường dẫn nằm trong thư mục routes. Ứng dụng quản lý tuyến đường, defikết thúc trong tập tin App\Providers\RouteServiceProvider, đảm nhiệm việc tự động sắp xếp các tệp này. Tập tin route/web.php defikết thúc các đường dẫn cho giao diện web của bạn.

Nó có thể defikết thúc một đường dẫn cho hành động điều khiển này như sau:

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

Route::resource: phương pháp Route::resource tạo ra tất cả các đường dẫn cơ bản cần thiết cho một ứng dụng và được quản lý thông qua lớp trình điều khiển.

Khi một yêu cầu khớp với URI tuyến đường đã chỉ định, phương thức này sẽ được gọi show defikết thúc trong bộ điều khiển App\Http\ControllersUserController, truyền các tham số định tuyến cho phương thức.

Đối với tài nguyên, bạn cần thực hiện hai việc trên ứng dụng Laravel. Trước tiên, bạn cần tạo một đường dẫn tài nguyên trên Laravel cung cấp các đường dẫn chèn, cập nhật, xem và xóa. Thứ hai, tạo bộ điều khiển tài nguyên cung cấp phương thức chèn, cập nhật, xem và xóa.

Cài đặt trướcdefiLaravel nita có hai đường dẫn: một cho web và một cho API. Đây là đường dẫn đến trang web trông như thế nào trong web.php:

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

return view(‘welcome’);

});

Phần mềm trung gian của Laravel đóng vai trò là cầu nối giữa yêu cầu và phản ứng. Nó có thể là một số loại thành phần bộ lọc.

Laravel làm việc với một trung gian có nhiệm vụ xác nhận xem ứng dụng khách có được xác minh hay không. Trong trường hợp khách hàng được xác nhận, sau đó định tuyến chuyển hướng đến trang chủ hoặc trang đăng nhập.

Các phương pháp cho route

Mã trước đó defikết thúc một đường dẫn đến trang chủ. Bất cứ khi nào đường dẫn này nhận được yêu cầu get mỗi /, sẽ trả về view welcome

Tất cả các đường dẫn Laravel là definiti trong bạn routing, được đặt bên trong thư mục dei routes. Do đó, l'AppProvidersRouteServiceProvider của ứng dụng sắp xếp các bản ghi này. Tập tin route/web.php chứa các tuyến được quản lý cho giao diện web của bạn.

Cấu trúc đường dẫn rất đơn giản. Mở tệp thích hợp (`web.phpo `api.php) và bắt đầu dòng mã với `Route:: `, theo sau là yêu cầu bạn muốn gán cho tuyến cụ thể đó và sau đó chỉ định chức năng sẽ được thực hiện sau yêu cầu.

Laravel cung cấp các phương thức đường dẫn sau:

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

Các con đường là defiđược đặt trong Laravel trong lớp Tuyến đường với HTTP, tuyến đường để trả lời và đóng hoặc bộ điều khiển.

Cách tạo đường dẫn trong Laravel

Hãy xem cách bạn có thể tạo đường dẫn của riêng mình trong Laravel.

Đường dẫn GET cơ bản

Bây giờ tôi sẽ tạo một đường dẫn cơ bản sẽ in bảng nhân của 2.

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

Trong đoạn mã trên, tôi đã tạo đường dẫn yêu cầu GET cho URL /table, sẽ in bảng nhân của 2 trên màn hình.

Bây giờ hãy xem đoạn mã tương tự, tham số hóa số mà chúng ta muốn có bảng cửu chương:

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

Trong mã 'number' giữa các dấu ngoặc nhọn đại diện cho tham số, tức là số mà bảng cửu chương sẽ được tính toán. Bất cứ khi nào một URL của loại được chỉ định /table/n, sau đó bảng số sẽ được in n.

Ngoài ra còn có cách kết hợp cả hai tính năng trong một đường dẫn. Laravel cung cấp tính năng tham số tùy chọn cho phép bạn thêm tham số tùy chọn bằng cách sử dụng dấu chấm hỏi '?' sau tham số tùy chọn và giá trị trướcdefiđêm. Hãy xem ví dụ:

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

Trong đoạn mã trên, chúng tôi đã tạo tham số tuyến đường của mình, làm cho số này trở thành tùy chọn, vì vậy nếu người dùng định tuyến `/table` thì nó sẽ tạo bảng 2 theo mặc địnhdefinite và nếu người dùng định tuyến đến `/table/{number}Sau đó bảng số 'number' sẽ được sản xuất.

Biểu thức chính quy làm ràng buộc cho các tham số tuyến đường

Trong ví dụ trước, chúng ta đã tạo một đường dẫn để tạo bảng cửu chương, nhưng làm cách nào để đảm bảo rằng tham số của đường dẫn thực sự là một số, để tránh lỗi khi tạo bảng cửu chương?

Trong Laravel, bạn có thể defikết thúc một ràng buộc trên tham số tuyến đường bằng cách sử dụng phương thức `where` trên trường hợp tuyến đường. `where` lấy tên tham số và một biểu thức chính quy cho tham số đó.

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Bây giờ hãy xem một ví dụ về ràng buộc đối với tham số ` của chúng ta{numero}` để đảm bảo rằng chỉ một số được chuyển đến hàm.

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

Trong đoạn mã trên, chúng tôi đã sử dụng biểu thức chính quy cho số đường dẫn. Bây giờ, nếu người dùng cố gắng định tuyến đến /bảng/không sẽ được hiển thị một ngoại lệ NotFoundHttpException.

Định tuyến Laravel với chức năng điều khiển

Trong Laravel, bạn có thể defikết thúc một phương thức Trình điều khiển cho một đường dẫn. Một phương pháp điều khiển thực hiện tất cả các hành động definite mỗi khi người dùng truy cập vào tuyến đường.
Với đoạn mã sau, chúng tôi đang gán phương thức điều khiển 'functionname' đến một tuyến đường:

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

Mã bắt đầu bằng `Route::` và sau đó defikết thúc phương thức yêu cầu cho đường dẫn. Sau đó, defiKết thúc đường dẫn và bộ điều khiển của bạn cùng với phương thức bằng cách thêm biểu tượng @ trước tên phương thức.

Đặt tên cho đường dẫn

Trong Laravel, bạn có thể defihoàn thành một tên cho con đường của bạn. Tên này thường rất hữu ích. Ví dụ: nếu bạn muốn chuyển hướng người dùng từ vị trí này sang vị trí khác, bạn không cần phải defihoàn thành URL chuyển hướng đầy đủ. Bạn chỉ có thể cho biết tên của mình. Bạn có thể defikết thúc tên tuyến đường bằng phương thức `name` trong trường hợp tuyến đường.

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

Bây giờ, tôi có thể tạo lại url cho đường dẫn này, thông qua đoạn mã sau:

$url = route('table');

Tương tự, để chuyển hướng đến URL này, cú pháp đúng sẽ là:

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

Route Groups

I Route Groups, nghĩa đen là các nhóm đường dẫn, là một tính năng thiết yếu trong Laravel, cho phép bạn nhóm các đường dẫn. Các nhóm đường dẫn rất hữu ích khi bạn muốn áp dụng các thuộc tính cho tất cả các đường dẫn được nhóm. Nếu bạn sử dụng các nhóm đường dẫn, bạn không phải áp dụng các thuộc tính riêng lẻ cho từng đường dẫn; điều này tránh trùng lặp. Nó cho phép bạn chia sẻ các thuộc tính như middleware o namespaces, không có defihoàn thành các thuộc tính này trên mỗi đường dẫn riêng lẻ. Các thuộc tính được chia sẻ này có thể được truyền ở định dạng mảng làm tham số đầu tiên cho phương thức Route::group.

Cú pháp của một nhóm tuyến đường

Route::group([], callback);  

chim bồ câu []: là một mảng được truyền cho phương thức nhóm làm tham số đầu tiên.

Ví dụ của Route Group trong 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" ;   
   });  
});  

Trong mã, defichúng ta hãy tìm phương pháp tập đoàn(), chứa hai tham số, tức là array e closure. Bên trong closure, Chúng ta có thể defihoàn thành bao nhiêu route chúng tôi muốn. Trong đoạn mã trên, chúng ta có defihoàn thành ba route.

Nếu thông qua trình duyệt, chúng tôi truy cập URL localhost/myproject/first sau đó người đầu tiên can thiệp route gõ vào trình duyệt first way route.

Với URL localhost/myproject/second sau đó đến lần thứ hai route gõ vào trình duyệt second way route.

Trong khi với URL localhost/myproject/third sau đó đến thứ ba route gõ vào trình duyệt third way route.

tiền tố của Route Groups

tiền tố của route chúng được sử dụng khi chúng tôi muốn cung cấp cấu trúc URL chung cho nhiều route.

Chúng tôi có thể chỉ định tiền tố cho tất cả các đường dẫn definite trong nhóm bằng cách sử dụng tùy chọn mảng tiền tố trong Route Groups.

Ví dụ của 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";  
   });  
});  

Mã chứa ba đường dẫn có thể được truy cập từ các URL sau:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Chúng tôi cũng có thể chỉ định phần mềm trung gian cho tất cả các tuyến trong một nhóm. Phần mềm trung gian phải là defixong trước khi tạo nhóm. Để xem làm thế nào để làm điều này, đọc bài viết của chúng tôi Phần mềm trung gian của Laravel hoạt động như thế nào.

Esempio:

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

Tiền tố tên đường dẫn

Phương pháp name được sử dụng để tiền tố mỗi tên của route với một chuỗi được chỉ định. trong phương pháp name, chúng ta cần chỉ định chuỗi có ký tự ở cuối trong tiền tố.

thí dụ web.php

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

Ercole Palmeri

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Bài viết gần đây

Sự can thiệp sáng tạo vào thực tế tăng cường, với người xem Apple tại Phòng khám đa khoa Catania

Một ca phẫu thuật tạo hình mắt bằng cách sử dụng trình xem thương mại Apple Vision Pro đã được thực hiện tại Phòng khám đa khoa Catania…

3 May 2024

Lợi ích của việc tô màu cho trẻ em - thế giới kỳ diệu dành cho mọi lứa tuổi

Phát triển kỹ năng vận động tinh thông qua tô màu giúp trẻ chuẩn bị cho những kỹ năng phức tạp hơn như viết. Để tô màu…

2 May 2024

Tương lai là đây: Ngành vận tải biển đang cách mạng hóa nền kinh tế toàn cầu như thế nào

Ngành hải quân là một cường quốc kinh tế toàn cầu thực sự, đang hướng tới thị trường 150 tỷ...

1 May 2024

Các nhà xuất bản và OpenAI ký thỏa thuận điều chỉnh luồng thông tin được Trí tuệ nhân tạo xử lý

Thứ Hai tuần trước, Financial Times đã công bố một thỏa thuận với OpenAI. FT cấp phép cho hoạt động báo chí đẳng cấp thế giới…

30 tháng tư 2024

Đọc Đổi mới bằng ngôn ngữ của bạn

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Theo chúng tôi