Trong phần này, chúng ta sẽ Tạo một trình rút ngắn URL. Chúng tôi sẽ sử dụng Laravel để làm điều này. Trong ứng dụng của chúng tôi, thay vì URL dài, chúng tôi sẽ tạo chuỗi URL rút gọn. Chúng tôi có thể sử dụng các phiên bản khác nhau của Laravel, chẳng hạn như Laravel 6, Laravel 7 và Laravel 8 để viết chức năng tập lệnh của chúng tôi
URL rút ngắn sẽ cần được tạo khi chúng tôi đang sử dụng SMS hoặc bất kỳ tùy chọn nào khác để chia sẻ với ký tự hạn chế và trong dự án của chúng tôi, chúng tôi cần chia sẻ bất kỳ liên kết hoặc URL nào tại thời điểm đó. Trong ứng dụng của chúng tôi, việc rút ngắn URL sẽ được yêu cầu nhiều lần, vì vậy chúng tôi cần triển khai một mô-đun trong dự án của mình để giúp rút ngắn URL hoặc liên kết ngắn với tên miền của trang web của chúng tôi. Quy trình từng bước để tạo URL rút gọn hoặc liên kết ngắn mà không sử dụng bất kỳ gói nào được mô tả như sau
Bước 1
Trong bước này, chúng ta sẽ Cài đặt Laravel 5. Nếu hệ thống của chúng tôi chưa cài đặt phiên bản Laravel mới, chúng tôi sẽ sử dụng lệnh sau để cài đặt phiên bản mới nhất của ứng dụng Laravel 5 như thế này
Bước 2
Trong bước này, chúng ta sẽ tạo bảng. Ở đây chúng ta sẽ tạo link rút gọn bằng ứng dụng scratch. Để tạo bảng có tên "short_links", chúng ta sẽ sử dụng lệnh di chuyển. Đối với điều này, chúng tôi sẽ sử dụng lệnh sau như thế này
Khi lệnh trên được thực thi thành công, chúng ta sẽ mở đường dẫn tệp có tên "database/migrations" và thấy một tệp mới trong đường dẫn này. Trong tệp di chuyển của chúng tôi, chúng tôi sẽ thêm đoạn mã sau để chúng tôi có thể tạo bảng short_links
Lệnh sau sẽ được sử dụng để chạy di chuyển ở trên như thế này
Bước 3
Trong bước này, chúng ta sẽ tạo Model. Ở đây, chúng tôi sẽ tạo ShortLink như một mô hình mới. Để tạo một mô hình mới, lệnh sau sẽ hữu ích
ứng dụng/ShortLink. php
Bước 4
Trong bước này, chúng ta sẽ tạo tuyến đường. Ở đây, chúng tôi sẽ tạo hai tuyến đường. Một tuyến sẽ được tạo cho tệp bố cục và tuyến thứ hai sẽ được tạo để lưu trữ dữ liệu. Chúng tôi sẽ thêm một tuyến đường bằng cách sử dụng tệp có tên tuyến đường/web. php như thế này
tuyến đường/web. php
Bước 5
Trong bước này, chúng ta sẽ tạo Bộ điều khiển. Ở đây, chúng tôi sẽ sử dụng ShortLinkController làm bộ điều khiển mới. Sử dụng bộ điều khiển này, chúng tôi có thể quản lý bố cục. Nó cũng được sử dụng để lưu trữ dữ liệu trong cơ sở dữ liệu. Bây giờ chúng ta sẽ sử dụng tệp điều khiển của mình và thêm đoạn mã sau vào như thế này
ứng dụng/Http/Bộ điều khiển/ShortLinkController. php
Bước 6
Trong bước này, chúng ta sẽ Tạo Chế độ xem. Ở đây, chúng ta sẽ tạo một tệp có tên là shortLink. lưỡi. php để bố trí. Chúng tôi sẽ thêm mã dưới đây vào tệp đó như thế này
tài nguyên/lượt xem/rút gọnLink. lưỡi. php
Bây giờ mã trên của chúng tôi đã sẵn sàng để chạy. Để chạy đoạn code trên cho nhanh chúng ta sẽ sử dụng lệnh sau
Cách đơn giản nhất là chuyển dữ liệu vào chế độ xem nơi bạn tạo nó [cho dù đó là trong bộ điều khiển, trực tiếp từ các tuyến. php hoặc cách khác]
Ví dụ
return view['index.blade.php', ['link-address' => '//example.com', 'link-text' => 'Click Here']];
Các mục mảng mà bạn chuyển đến dạng xem sẽ có sẵn trong dạng xem của bạn với tên của các khóa mảng mà bạn đã xác định [vì vậy trong trường hợp này, các biến $link-address và $link-text sẽ có sẵn cho bạn]
Laravel cung cấp một số trình trợ giúp để hỗ trợ bạn tạo URL cho ứng dụng của mình. Những người trợ giúp này chủ yếu hữu ích khi xây dựng liên kết trong các mẫu và phản hồi API của bạn hoặc khi tạo phản hồi chuyển hướng đến một phần khác trong ứng dụng của bạn
Những thứ cơ bản
Tạo URL
Trình trợ giúp
use Illuminate\Support\Facades\URL;
0 có thể được sử dụng để tạo các URL tùy ý cho ứng dụng của bạn. URL được tạo sẽ tự động sử dụng lược đồ [HTTP hoặc HTTPS] và lưu trữ từ yêu cầu hiện tại đang được ứng dụng xử lý$post = App\Models\Post::find[1];
echo url["/posts/{$post->id}"];
// //example.com/posts/1
Truy cập URL hiện tại
Nếu không có đường dẫn nào được cung cấp cho trình trợ giúp
use Illuminate\Support\Facades\URL;
0, thì phiên bản use Illuminate\Support\Facades\URL;
2 được trả về, cho phép bạn truy cập thông tin về URL hiện tại// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
Mỗi phương pháp này cũng có thể được truy cập thông qua mặt tiền
use Illuminate\Support\Facades\URL;
3use Illuminate\Support\Facades\URL;
URL cho các tuyến đường được đặt tên
Trình trợ giúp
use Illuminate\Support\Facades\URL;
4 có thể được sử dụng để tạo URL cho các tuyến đường được đặt tên. Các tuyến được đặt tên cho phép bạn tạo các URL mà không cần ghép nối với URL thực được xác định trên tuyến. Do đó, nếu URL của tuyến đường thay đổi, thì không cần thực hiện thay đổi nào đối với các lệnh gọi hàm use Illuminate\Support\Facades\URL;
4 của bạn. Ví dụ: hãy tưởng tượng ứng dụng của bạn chứa một tuyến đường được xác định như sauuse Illuminate\Support\Facades\URL;
0Để tạo URL cho tuyến đường này, bạn có thể sử dụng trình trợ giúp
use Illuminate\Support\Facades\URL;
4 như vậyuse Illuminate\Support\Facades\URL;
2Tất nhiên, trình trợ giúp
use Illuminate\Support\Facades\URL;
4 cũng có thể được sử dụng để tạo URL cho các tuyến có nhiều tham sốuse Illuminate\Support\Facades\URL;
4Bất kỳ phần tử mảng bổ sung nào không tương ứng với các tham số định nghĩa của tuyến đường sẽ được thêm vào chuỗi truy vấn của URL
use Illuminate\Support\Facades\URL;
5người mẫu hùng hồn
Bạn sẽ thường tạo các URL bằng cách sử dụng khóa định tuyến [thường là khóa chính] của các mô hình Eloquent. Vì lý do này, bạn có thể chuyển các mô hình Eloquent làm giá trị tham số. Trình trợ giúp
use Illuminate\Support\Facades\URL;
4 sẽ tự động trích xuất khóa định tuyến của mô hìnhuse Illuminate\Support\Facades\URL;
7URL đã ký
Laravel cho phép bạn dễ dàng tạo các URL "đã ký" cho các tuyến được đặt tên. Các URL này có hàm băm "chữ ký" được thêm vào chuỗi truy vấn cho phép Laravel xác minh rằng URL chưa bị sửa đổi kể từ khi nó được tạo. Các URL đã ký đặc biệt hữu ích cho các tuyến có thể truy cập công khai nhưng vẫn cần một lớp bảo vệ chống thao túng URL
Ví dụ: bạn có thể sử dụng các URL đã ký để triển khai liên kết "hủy đăng ký" công khai được gửi qua email cho khách hàng của bạn. Để tạo một URL đã ký cho một tuyến đường được đặt tên, hãy sử dụng phương pháp
use Illuminate\Support\Facades\URL;
9 của mặt tiền use Illuminate\Support\Facades\URL;
3$post = App\Models\Post::find[1];
echo url["/posts/{$post->id}"];
// //example.com/posts/1
0Nếu bạn muốn tạo URL tuyến đường đã ký tạm thời sẽ hết hạn sau một khoảng thời gian nhất định, bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\URL;
01. Khi Laravel xác thực một URL định tuyến đã ký tạm thời, nó sẽ đảm bảo rằng dấu thời gian hết hạn được mã hóa vào URL đã ký chưa trôi qua$post = App\Models\Post::find[1];
echo url["/posts/{$post->id}"];
// //example.com/posts/1
2Xác thực các yêu cầu định tuyến đã ký
Để xác minh rằng một yêu cầu đến có chữ ký hợp lệ, bạn nên gọi phương thức
use Illuminate\Support\Facades\URL;
02 trên phiên bản use Illuminate\Support\Facades\URL;
03 đến// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
0Đôi khi, bạn có thể cần cho phép giao diện người dùng của ứng dụng nối thêm dữ liệu vào một URL đã ký, chẳng hạn như khi thực hiện phân trang phía máy khách. Do đó, bạn có thể chỉ định các tham số truy vấn yêu cầu sẽ bị bỏ qua khi xác thực URL đã ký bằng phương pháp
use Illuminate\Support\Facades\URL;
04. Hãy nhớ rằng, việc bỏ qua các tham số cho phép mọi người sửa đổi các tham số đó theo yêu cầu// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
1Thay vì xác thực các URL đã ký bằng cách sử dụng phiên bản yêu cầu đến, bạn có thể chỉ định phần mềm trung gian
use Illuminate\Support\Facades\URL;
05 cho tuyến đường. Nếu nó chưa có, bạn nên gán cho phần mềm trung gian này một khóa trong mảng use Illuminate\Support\Facades\URL;
06 của nhân HTTP của bạn// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
2Khi bạn đã đăng ký phần mềm trung gian trong nhân của mình, bạn có thể đính kèm nó vào một tuyến đường. Nếu yêu cầu đến không có chữ ký hợp lệ, phần mềm trung gian sẽ tự động trả về phản hồi HTTP
use Illuminate\Support\Facades\URL;
07// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
3Trả lời các tuyến đường đã ký không hợp lệ
Khi ai đó truy cập một URL đã ký đã hết hạn, họ sẽ nhận được một trang lỗi chung cho mã trạng thái HTTP
use Illuminate\Support\Facades\URL;
07. Tuy nhiên, bạn có thể tùy chỉnh hành vi này bằng cách xác định bao đóng "có thể kết xuất" tùy chỉnh cho ngoại lệ use Illuminate\Support\Facades\URL;
09 trong trình xử lý ngoại lệ của bạn. Việc đóng này sẽ trả về một phản hồi HTTP// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
4URL cho hành động điều khiển
Hàm
use Illuminate\Support\Facades\URL;
20 tạo URL cho hành động của bộ điều khiển đã cho// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
5Nếu phương thức của bộ điều khiển chấp nhận tham số tuyến đường, bạn có thể chuyển một mảng kết hợp gồm các tham số tuyến đường làm đối số thứ hai cho hàm
// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
6Giá trị mặc định
Đối với một số ứng dụng, bạn có thể muốn chỉ định các giá trị mặc định cho toàn bộ yêu cầu cho các tham số URL nhất định. Ví dụ: hãy tưởng tượng nhiều tuyến đường của bạn xác định tham số
use Illuminate\Support\Facades\URL;
21// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
7Thật là rườm rà khi luôn vượt qua
use Illuminate\Support\Facades\URL;
22 mỗi khi bạn gọi người trợ giúp use Illuminate\Support\Facades\URL;
4. Vì vậy, bạn có thể sử dụng phương thức use Illuminate\Support\Facades\URL;
24 để xác định giá trị mặc định cho tham số này sẽ luôn được áp dụng trong yêu cầu hiện tại. Bạn có thể muốn gọi phương thức này từ phần mềm trung gian định tuyến để bạn có quyền truy cập vào yêu cầu hiện tại// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
8Khi giá trị mặc định cho tham số
use Illuminate\Support\Facades\URL;
22 đã được đặt, bạn không còn cần phải chuyển giá trị của nó khi tạo URL thông qua trình trợ giúp use Illuminate\Support\Facades\URL;
4Mặc định URL & Ưu tiên phần mềm trung gian
Đặt các giá trị mặc định của URL có thể ảnh hưởng đến việc Laravel xử lý các liên kết mô hình ẩn. Do đó, bạn nên ưu tiên phần mềm trung gian đặt mặc định URL được thực thi trước phần mềm trung gian
use Illuminate\Support\Facades\URL;
27 của chính Laravel. Bạn có thể thực hiện điều này bằng cách đảm bảo rằng phần mềm trung gian của bạn xuất hiện trước phần mềm trung gian use Illuminate\Support\Facades\URL;
27 trong thuộc tính use Illuminate\Support\Facades\URL;
29 của nhân HTTP của ứng dụng của bạnThuộc tính
use Illuminate\Support\Facades\URL;
29 được định nghĩa trong lớp cơ sở use Illuminate\Support\Facades\URL;
41. Bạn có thể sao chép định nghĩa của nó từ lớp đó và ghi đè lên nhân HTTP của ứng dụng để sửa đổi nó