Nghệ nhân php tạo: quy tắc

Ưu điểm lớn nhất của Laravel so với các framework khác là nó có rất nhiều tính năng tích hợp sẵn. Chúng ta đã khám phá các phương pháp bảo mật tốt nhấtNgười trợ giúp Laraveltrong các bài viết trước của chúng tôi. Trong bài viết này, chúng ta sẽ hiểu Quy tắc xác thực tùy chỉnh của Laravel

Laravel cung cấp cho bạn một bộ quy tắc xác thực phong phú mà bạn có thể thêm vào để xác thực các yêu cầu. Có nhiều Công ty phát triển web Laravel chuyên nghiệp có thể giúp bạn xác định phương thức xác thực một cách dễ dàng, đây thực sự là một phần của đối tượng Yêu cầu hiện có. Khi quy tắc xác thực vượt qua, mã của bạn sẽ được thực thi thêm, nếu không, bạn có thể hiển thị thông báo lỗi

Như bạn có thể thấy trong đoạn mã trên, chúng tôi đang chặn cuộc gọi. Ngay trước khi lưu trữ dữ liệu thực sự diễn ra, chúng tôi đang xác thực yêu cầu. Chúng tôi đang kiểm tra xem blog mà chúng tôi sắp lưu có phải là duy nhất không cũng như độ dài của nó dưới 255. Chúng tôi cũng đã đề cập rằng nội dung là bắt buộc để một blog hợp lệ. Chỉ khi tất cả các quy tắc này được xác thực thì yêu cầu sẽ được tiếp tục

Một ưu điểm khác là chúng tôi có thể chuyển hướng người dùng đến một trang cụ thể khi xảy ra lỗi. Theo mặc định, Laravel sẽ đưa người dùng trở lại cùng một trang trong trường hợp có lỗi. Trong trường hợp của chúng tôi, nó sẽ tải lại cùng một trang và nhấn phương thức tạo. Trong phương pháp đó, chúng tôi kiểm tra xem có lỗi nào không, chúng tôi hiển thị trang lỗi cho anh ấy

Trong hầu hết các trường hợp, các quy tắc do Laravel cung cấp là đủ để xác thực tất cả các trường hợp sử dụng, nhưng trong một số điều kiện nhất định, bạn có thể cần thêm các quy tắc xác thực tùy chỉnh. Hãy tìm hiểu sâu và xem cách chúng ta có thể xác định các quy tắc tùy chỉnh và cho phép chúng xác thực các yêu cầu của chúng ta

Bạn muốn được tư vấn miễn phí về Quy tắc xác thực tùy chỉnh bằng Laravel?

Lên lịch cuộc gọi tư vấn miễn phí với các nhà phát triển của chúng tôi để biết thêm về các quy tắc xác thực tùy chỉnh.  

Đặt lịch gọi ngay

Tạo quy tắc xác thực tùy chỉnh trong Laravel

Laravel cung cấp một giải pháp rất tinh tế để tạo các quy tắc xác thực tùy chỉnh và móc tất cả các quy tắc đó vào các lớp tùy chỉnh của bạn

Các quy tắc xác thực tùy chỉnh này sẽ giúp bạn sắp xếp các lớp tùy chỉnh của mình và nếu bạn cần đưa nó vào dự án của mình và trong trường hợp nó trở nên phức tạp, chắc chắn hãy thuê các nhà phát triển từ Ấn Độ thành thạo về công nghệ, họ sẽ giúp bạn giải quyết vấn đề phức tạp và nâng cao chất lượng

Trước khi tìm hiểu sâu hơn, chúng ta hãy tạo một biểu mẫu rất đơn giản, trong đó khách hàng phải nhập tên và địa chỉ email.
Bạn có thể sử dụng lệnh bên dưới để tạo yêu cầu

nghệ nhân php làm. yêu cầu Cửa hàngKhách hàngYêu cầu

Khi bạn thực hiện lệnh trên, lớp sau sẽ được thêm vào

Như bạn có thể thấy có hai phương thức đã có trong lớp

  • phương pháp ủy quyền. Nó được sử dụng để xác định các quy tắc ủy quyền. Nó có thể giúp bạn xác định tất cả những ai có quyền truy cập vào các trang này
  • phương pháp quy tắc. Đây là phương pháp mà bạn sẽ thêm các quy tắc xác thực của mình. Chúng tôi đang xác thực tên và email

Tạo lớp quy tắc

Như chúng ta vừa thấy, chúng ta đã tạo một Mô hình khách hàng có tên và email. Bây giờ chúng ta hãy thêm một số quy tắc để xác thực các trường này. Bạn có thể thực hiện lệnh dưới đây để tạo quy tắc tùy chỉnh

Nghệ nhân PHP làm. quy tắc UpperCase

Sau khi bạn thực hiện lệnh này, Laravel sẽ tạo một thư mục mới có tên là Rules trong thư mục ứng dụng. Nó cũng sẽ thêm UpperCase. tệp lớp tệp php ở cùng một vị trí.


Như bạn có thể thấy, có hai chức năng mà chúng ta cần triển khai trong lớp trên. Đây là pass[] và message[].

Thêm logic xác thực

Khi chúng tôi đã thêm lớp quy tắc xác thực, hãy để chúng tôi thêm logic xác thực. Đối với ví dụ này, chúng ta hãy xem xét rằng tên ở định dạng chữ hoa. Vì vậy, chúng tôi sẽ tiếp tục và cập nhật chức năng thẻ của mình

Như bạn có thể thấy trong phương thức pass[], ban đầu chúng ta chuyển đổi giá trị của mình thành chữ hoa và kiểm tra xem giá trị vượt qua và giá trị được chuyển đổi có giống nhau không. Nếu chúng giống nhau, chúng tôi trả về true nếu không chúng tôi sẽ trả về false

Để thực hành mã hóa tốt, chúng ta nên cập nhật hàm message[]. Trong hàm message[], chúng tôi đang chỉ định thông báo sẽ được hiển thị, trong trường hợp xảy ra lỗi xác thực

Trong hàm, chúng tôi đang trả về chuỗi lỗi sẽ được hiển thị trong trường hợp một trong các quy tắc xác thực không thành công

Sử dụng Quy tắc Xác thực trong Lớp Yêu cầu Biểu mẫu

Bây giờ chúng ta đã tạo quy tắc xác thực, hãy tiếp tục và thêm xác thực vào lớp yêu cầu biểu mẫu mà chúng ta đã thêm ở trên

Bước đầu tiên là nhập lớp mới tạo này vào lớp yêu cầu của chúng ta. Chúng tôi có thể nhập bằng mã dưới đây.
sử dụng AppRulesUpperCase

Bây giờ chúng ta đã nhập lớp, hãy tiếp tục cập nhật và cập nhật phương thức rules[]

Như bạn có thể thấy, chúng tôi hiện đã thêm một xác thực bổ sung trong danh sách quy tắc tên. Chúng tôi đang tạo một thể hiện mới của lớp UpperCase. Khi phương thức rules[] được thực thi, lớp UpperCase sẽ được khởi tạo và nó sẽ gọi phương thức pass[] trong lớp Uppercase để xác thực tên

Nếu tên không viết hoa, phương thức pass[] sẽ trả về false, post mà phương thức rules[] sẽ gọi hàm message[] để nhận thông báo lỗi

Sử dụng Quy tắc xác thực trong Bộ điều khiển

Phương pháp thêm quy tắc ở trên trong yêu cầu biểu mẫu rất hữu ích khi bạn đang tạo đối tượng yêu cầu. Lớp quy tắc cũng có thể được thêm trực tiếp vào mã điều khiển. Hãy nhanh chóng xem cách chúng ta có thể triển khai lớp quy tắc UpperCase trực tiếp trong bộ điều khiển

Một lần nữa, bước đầu tiên sẽ là nhập trực tiếp UpperCase vào lớp trình điều khiển. Chúng ta có thể sử dụng đoạn mã dưới đây để nhập trực tiếp lớp

sử dụng AppRulesUpperCase

Khi bạn đã nhập lớp, bước tiếp theo sẽ là thêm lệnh gọi xác thực

Như bạn có thể thấy trong chức năng xác thực yêu cầu, chúng tôi đã thêm một quy tắc mới trong xác thực tên. Chúng tôi đang tạo một đối tượng mới của lớp UpperCase. Trong cuộc gọi này, một đối tượng mới của UpperCase sẽ được tạo và quá trình xác thực sẽ diễn ra

Tạo xác thực tùy chỉnh trong Laravel bằng quy tắc thoát

Ngoài việc tạo lớp quy tắc cho xác thực tùy chỉnh, chúng ta cũng có thể sử dụng bao đóng và mở rộng để triển khai logic xác thực tùy chỉnh của mình

Sử dụng xác thực tùy chỉnh

Trước khi tìm hiểu sâu hơn về phần mở rộng và phần đóng, chúng ta hãy hiểu rõ hơn về cách tạo quy tắc. Chúng tôi sẽ thực hiện một quy tắc tùy chỉnh sẽ kiểm tra xem số được chuyển vào hộp văn bản có chẵn hay không

Vì vậy, bước đầu tiên để tạo quy tắc này là tạo lớp quy tắc của chúng ta. Chúng ta nên sử dụng make. lệnh quy tắc được cung cấp bởi nghệ nhân. Bạn có thể sử dụng lệnh dưới đây để tạo lớp quy tắc của chúng tôi

nghệ nhân php làm. quy tắc IsEvenNumber

Khi bạn thực hiện lệnh này, một lớp cai trị sẽ được tạo cho bạn trong thư mục ứng dụng/Quy tắc. Dưới đây sẽ là mã tối thiểu trần sẽ được thêm vào bởi chính khuôn khổ Laravel

Ngay sau khi chúng tôi thực hiện lệnh, lớp trên được tạo. Nó có hai chức năng mà chúng ta cần thực hiện. Một trong những chức năng này là pass[] trả về nếu quá trình xác thực có thành công hay không. Chức năng khác là message[] cho phép bạn tùy chỉnh thông báo lỗi của mình

Trong hàm vượt qua, chúng ta chỉ có thể xác thực bằng cách lấy modulo, nếu số đó là chẵn hay không. Bây giờ chúng tôi đã xác định quy tắc, chúng tôi có thể sử dụng nó dễ dàng

sử dụng AppRulesUppercase;

$request->validate[[
'name' => ['required', 'string', new IsEvenNumber],
]];

Quy tắc xác thực tùy chỉnh bằng cách sử dụng các lần đóng

Bây giờ chúng ta đã thấy cách chúng ta có thể tạo các quy tắc xác thực tùy chỉnh của mình bằng cách sử dụng lệnh make. rule, chúng ta nên hiểu cách chúng ta có thể tạo các lệnh bằng cách sử dụng bao đóng. Khái niệm về quy tắc xác thực vẫn giữ nguyên, nó chỉ được triển khai ở một dạng khác

Như chúng ta có thể thấy trong đoạn mã trên, chúng ta đang sử dụng lớp Trình xác thực và trực tiếp tạo quy tắc. Hàm trong đó đang nhận 3 giá trị. thuộc tính, giá trị và thất bại. Thuộc tính là trường mà quá trình xác thực đang diễn ra. Giá trị tương ứng với giá trị thực của đối tượng đã nói và lỗi là phương thức gọi lại sẽ được thực thi sau khi xác thực không thành công

Quy tắc xác thực bằng phương pháp Mở rộng

Một cách khác để thêm quy tắc xác thực là sử dụng phương thức mở rộng. Mặt tiền trình xác thực có phương thức mở rộng này. Nếu bạn định chỉ sử dụng trình xác thực ở một nơi, thì có thể nên xác định quy tắc xác thực bằng phương thức mở rộng

Vì vậy, hãy tiếp tục và tạo quy tắc xác thực

namespace AppProviders;

sử dụng IlluminateSupportServiceProvider;
sử dụng IlluminateSupportFacadesValidator;

class AppServiceProvider mở rộng ServiceProvider
{
/**
* Đăng ký bất kỳ dịch vụ ứng dụng nào.
*
* @return void
*/
thanh ghi hàm công khai[]

Chủ Đề