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

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

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

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

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

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

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

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

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í.

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

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

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

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

Nghệ nhân php tạo: quy tắ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()

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

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

Nghệ nhân php tạo: quy tắ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

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

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

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

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

Nghệ nhân php tạo: quy tắ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(){
//
}

/**
* Bootstrap mọi dịch vụ ứng dụng.
*
* @return void
*/
hàm công khai boot()
{
Validator::extend(‘uppercase’, function ($attribute, $value, $parameters, $validator) {
return $value === strtoupper($value);
});
}
}

Như bạn có thể thấy, trong phương thức boot() chúng ta đã thêm lời gọi cho Trình xác thực. phương pháp mở rộng(). Trong phương pháp này, chúng tôi đang thêm quy tắc xác thực của mình. Một lần nữa, trình xác nhận này có bốn đầu vào. thuộc tính, giá trị, tham số và trình xác thực

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

Ví dụ về quy tắc xác thực tùy chỉnh

Đến đây chúng ta đã hiểu hết các khái niệm về custom validation rule trong Laravel. Hãy để chúng tôi viết một ví dụ phức tạp hơn để được hoàn hảo. Trong ví dụ này, người dùng phải nhập năm và thành phố

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

Các quy tắc chúng tôi sẽ áp dụng cho năm như sau

  • Thế vận hội Olympic đã bắt đầu vào năm 1896
  • Năm không thể lớn hơn năm hiện tại
  • Và vì Thế vận hội diễn ra 4 năm một lần nên số đó phải chia hết cho 4

Vì vậy, chúng ta hãy tiếp tục và tạo các quy tắc này. Bạn có thể thực hiện lệnh thủ công dưới đây để tạo lớp cai trị.
php nghệ nhân làm. thống trị OlympicYear

Khi bạn đã thực thi lệnh này, Laravel sẽ tạo ra lớp thống trị được gọi là OlympicYear. tập tin php. Tệp nằm trong thư mục ứng dụng/Quy tắc/

Hãy để chúng tôi đi và kiểm tra nội dung của tệp mới được tạo

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

Vì vậy, như chúng ta có thể thấy tệp trên chứa hai chức năng chính. vượt qua () và tin nhắn (). Bạn nên thêm tất cả logic xác thực của mình vào hàm pass(). Nó sẽ trả về true hoặc false dựa trên logic bạn đã viết trong hàm. Hàm message() trả về một chuỗi chỉ định thông báo lỗi sẽ được hiển thị trong trường hợp xác thực không thành công

Chúng ta hãy tiếp tục và gọi các quy tắc mà chúng ta đã chỉ định trong bài toán. Chúng tôi muốn năm lớn hơn năm 1896, nhỏ hơn ngày nay và phải chia hết cho 4.
______2

Vì vậy, chúng tôi đang trả về đầu ra là đúng hoặc sai dựa trên điều kiện. Giá trị chúng tôi nhận được trong đầu vào hàm là giá trị thực mà người dùng đã nhập

Chúng ta nên luôn điền thông báo với một số giá trị chính xác để người dùng có thể dễ dàng hiểu được, anh ta đã mắc lỗi ở bước nào và anh ta có thể sửa nó

public function message()
{
return ':attribute should be a year of Olympic Games';
}

Như bạn có thể thấy từ hàm trên, chúng tôi đang trả về một chuỗi thông báo cho người dùng rằng giá trị được nhập vào trường phải là năm Olympic chính xác

Bây giờ chúng ta đã xác định lớp, bước hợp lý tiếp theo sẽ là tích hợp nó với bộ điều khiển của chúng ta. Ngay trước khi lưu các giá trị của mình, chúng ta phải luôn xác thực các giá trị.
______4

Trong đoạn mã trên, trong hàm store(), chúng tôi đang xác thực cuộc gọi. Nếu bạn để ý, chúng tôi đang tạo đối tượng mới và chuyển đối tượng tương tự cho lệnh gọi xác thực. Lần tiếp theo, đoạn mã này bị tấn công, lớp mới được viết của chúng ta sẽ được tạo và hàm pass() sẽ được gọi để xác định xem giá trị do người dùng nhập vào có hợp lệ hay không

Sự kết luận

Laravel được sử dụng rộng rãi trong phát triển web. Một lợi thế lớn của Laravel so với một framework tương tự là mức độ tùy chỉnh mà nó cung cấp. Nó cũng đi kèm với hầu hết các chức năng được tích hợp sẵn. Laravel có rất nhiều trình xác thực có thể được sử dụng để xác thực các biểu mẫu yêu cầu hoặc dữ liệu đầu vào. Vì vậy, mục đích đó chúng tôi cần thuê các nhà phát triển laravel

Nhưng trong một số trường hợp nhất định, chúng tôi có thể cần một trình xác nhận tùy chỉnh có thể phục vụ cho mục đích cụ thể của chúng tôi. Laravel cho phép bạn tạo các trình xác nhận tùy chỉnh này. Trong bài viết này, chúng tôi đã khám phá nhiều cách khác nhau để bạn có thể thêm các trình xác nhận này

Bạn có thể sử dụng chế tạo. rule để tạo lớp cai trị hoặc bạn có thể sử dụng phương thức Đóng và Mở rộng có trong trình xác thực. Chúng tôi cũng đã cố gắng viết một ví dụ phức tạp về xác thực năm Olympic. Hy vọng lần sau khi bạn phải viết trình xác thực tùy chỉnh, bạn có thể dễ dàng viết nó

Bạn muốn xây dựng các giải pháp phần mềm xác thực an toàn cho doanh nghiệp của mình?

Kết nối với chúng tôi để phát triển một phần mềm giàu tính năng và được tùy chỉnh với các quy tắc xác thực hiệu quả