Ở đây chúng ta sẽ thảo luận về tất cả các loại quy tắc xác thực cột duy nhất của laravel. quy tắc xác thực trường duy nhất của laravel khi cập nhật dữ liệu. xác thực duy nhất của laravel với điều kiện where. Quy tắc xác thực duy nhất trong laravel 8, laravel 9
Quy tắc xác thực cột duy nhất của Laravel
- Xác thực cột duy nhất theo tên bảng
- Kiểm tra xác thực duy nhất theo mô hình
- Kiểm tra cột duy nhất với id khi cập nhật dữ liệu
- Xác thực cột duy nhất của Laravel với điều kiện where
Xác thực cột duy nhất theo tên bảng
Khi bạn muốn xác thực một cột, cùng một giá trị không có sẵn trong bảng thì laravel cung cấp quy tắc xác thực duy nhất chỉ định tên cột của bảng bằng bảng. email_address là tên cột của bảng cơ sở dữ liệu
Validator::make[$data, [ 'email' => 'required|unique:users,email_address' ]];
đọc thêm. Chức năng trợ giúp tùy chỉnh của Laravel
Kiểm tra xác thực duy nhất theo mô hình
Khi bạn muốn kiểm tra quy tắc cột duy nhất theo mô hình thay vì bảng, hãy chỉ định tên cột bằng mô hình hùng hồn thay vì bảng, hãy xem ví dụ bên dưới
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];
Kiểm tra cột duy nhất với id khi cập nhật dữ liệu
Khi bạn muốn kiểm tra xác thực cột duy nhất trong khi cập nhật dữ liệu, Chúng tôi chuyển một ID để bỏ qua hàng cụ thể đó của bảng. Ví dụ: nếu bạn cập nhật dữ liệu hồ sơ người dùng và trường email ở đây là duy nhất thì bạn chuyển ID người dùng đó để bỏ qua hàng này, nó sẽ kiểm tra email duy nhất trong tất cả các hàng của bảng thay vì dữ liệu ID đó
Bạn có thể chuyển ID theo hai loại có Quy tắc và không có Quy tắc, xem ví dụ bên dưới
//without Rule Validator::make[$data, [ 'email' => 'required|unique:users,email_address,'.$user_id, ]]; // with Rule Validator::make[$data, [ 'email' => [ 'required', Rule::unique['users', 'email_address']->ignore[$user_id], ], ]];
đọc thêm. Quy tắc xác thực Laravel required_if
Xác thực cột duy nhất của Laravel với điều kiện where
Bạn cũng có thể sử dụng điều kiện where khi xác định xác thực cho cột duy nhất. Trong laravel, bạn cũng có thể xác định cột duy nhất với cột khác. Ví dụ cột 'email_address' của bảng người dùng là duy nhất bằng cột user_type như thế nào thì ta chỉ kiểm tra địa chỉ email duy nhất của những người dùng có user_type bằng 1
Xin lưu ý rằng một số xác thực dựa trên tên trường và do đó sẽ không hoạt động khi được chuyển qua
Field::make['name']->alpha[]
8/Field::make['name']->alpha[]
9. Sử dụng các phương pháp xác thực chuyên dụng bất cứ khi nào bạn có thểquy tắc có sẵn
URL hoạt động
Trường phải có bản ghi A hoặc AAAA hợp lệ theo hàm
Field::make['name']->alphaDash[]
0 PHP. Field::make['name']->activeUrl[]
Sau [ngày]
Giá trị trường phải là một giá trị sau một ngày nhất định.
Field::make['startDate']->after['tomorrow']
Ngoài ra, bạn có thể chuyển tên của trường khác để so sánh với
________số 8Sau hoặc bằng [ngày]
Giá trị trường phải là ngày sau hoặc bằng ngày đã cho.
Field::make['startDate']->afterOrEqual['tomorrow']
Ngoài ra, bạn có thể chuyển tên của trường khác để so sánh với
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];0
anpha
Trường phải hoàn toàn là các ký tự chữ cái.
Field::make['name']->alpha[]
Dấu gạch ngang Alpha
Trường có thể có các ký tự chữ và số, cũng như dấu gạch ngang và dấu gạch dưới.
Field::make['name']->alphaDash[]
chữ và số
Trường phải hoàn toàn là ký tự chữ và số.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];3
Trước [ngày]
Giá trị trường phải là một ngày trước một ngày nhất định.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];4
Ngoài ra, bạn có thể chuyển tên của trường khác để so sánh với
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];5
Trước hoặc bằng [ngày]
Giá trị trường phải là một ngày trước hoặc bằng ngày đã cho.
Field::make['startDate']->after['tomorrow']
0Ngoài ra, bạn có thể chuyển tên của trường khác để so sánh với
Field::make['startDate']->after['tomorrow']
1Đã xác nhận
Trường phải có trường phù hợp là
Field::make['name']->alphaDash[]
1. Field::make['startDate']->after['tomorrow']
2Khác biệt
Giá trị trường phải khác với giá trị khác.
Field::make['startDate']->after['tomorrow']
3không bắt đầu với
Trường không được bắt đầu bằng một trong các giá trị đã cho.
Field::make['startDate']->after['tomorrow']
4không kết thúc với
Trường không được kết thúc bằng một trong các giá trị đã cho.
Field::make['startDate']->after['tomorrow']
5kết thúc với
Trường phải kết thúc bằng một trong các giá trị đã cho.
Field::make['startDate']->after['tomorrow']
6liệt kê
Trường phải chứa giá trị enum hợp lệ.
Field::make['startDate']->after['tomorrow']
7tồn tại
Giá trị trường phải tồn tại trong cơ sở dữ liệu.
Field::make['startDate']->after['tomorrow']
8Theo mặc định, mô hình của biểu mẫu sẽ được tìm kiếm,. Bạn có thể chỉ định tên hoặc kiểu bảng tùy chỉnh để tìm kiếm
Field::make['startDate']->after['tomorrow']
9Theo mặc định, tên trường sẽ được sử dụng làm cột để tìm kiếm. Bạn có thể chỉ định một cột tùy chỉnh để tìm kiếm
Field::make['endDate']->after['startDate']
0Bạn có thể tùy chỉnh thêm quy tắc bằng cách chuyển a đến tham số
Field::make['name']->alphaDash[]
2Field::make['endDate']->after['startDate']
1Điền
Trường không được trống khi nó hiện diện.
Field::make['endDate']->after['startDate']
2Lớn hơn
Giá trị trường phải lớn hơn giá trị khác.
Field::make['endDate']->after['startDate']
3Lớn hơn hoặc bằng
Giá trị trường phải lớn hơn hoặc bằng giá trị khác.
Field::make['endDate']->after['startDate']
4Trường phải được bao gồm trong danh sách giá trị đã cho.
Field::make['endDate']->after['startDate']
5Địa chỉ IP
Trường phải là một địa chỉ IP.
Field::make['endDate']->after['startDate']
6JSON
Trường phải là một chuỗi JSON hợp lệ.
Field::make['endDate']->after['startDate']
7Ít hơn
Giá trị trường phải nhỏ hơn giá trị khác.
Field::make['endDate']->after['startDate']
8Ít hơn hoặc bằng
Giá trị trường phải nhỏ hơn hoặc bằng giá trị khác.
Field::make['endDate']->after['startDate']
9Địa chỉ MAC
Trường phải là địa chỉ MAC.
Field::make['startDate']->afterOrEqual['tomorrow']
0Nhiều Của
Trường phải là bội số của giá trị.
Field::make['startDate']->afterOrEqual['tomorrow']
1không vào
Trường không được đưa vào danh sách giá trị đã cho.
Field::make['startDate']->afterOrEqual['tomorrow']
2Không phải Regex
Trường không được khớp với biểu thức chính quy đã cho.
Field::make['startDate']->afterOrEqual['tomorrow']
3Nullable
Giá trị trường có thể để trống. Quy tắc này được áp dụng theo mặc định nếu không có quy tắc
Field::make['name']->alphaDash[]
3. Field::make['startDate']->afterOrEqual['tomorrow']
4Cấm
Giá trị trường phải trống.
Field::make['startDate']->afterOrEqual['tomorrow']
5Cần thiết
Giá trị trường không được để trống.
Field::make['startDate']->afterOrEqual['tomorrow']
6bắt buộc với
Giá trị trường không được để trống chỉ khi bất kỳ trường nào được chỉ định khác không trống.
Field::make['startDate']->afterOrEqual['tomorrow']
7Bắt buộc với tất cả
Giá trị trường không được để trống chỉ khi tất cả các trường được chỉ định khác không trống.
Field::make['startDate']->afterOrEqual['tomorrow']
8bắt buộc không có
Giá trị trường không được để trống chỉ khi bất kỳ trường nào được chỉ định khác trống.
Field::make['startDate']->afterOrEqual['tomorrow']
9Bắt buộc không có tất cả
Giá trị trường không được để trống chỉ khi tất cả các trường được chỉ định khác đều trống.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];00
biểu thức chính quy
Trường phải khớp với biểu thức chính quy đã cho.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];01
Như nhau
Giá trị trường phải giống với giá trị khác.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];02
Bắt đầu với
Trường phải bắt đầu bằng một trong các giá trị đã cho.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];03
Chuỗi
Trường phải là một chuỗi.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];04
Duy nhất
Giá trị trường không được tồn tại trong cơ sở dữ liệu.
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];05
Theo mặc định, mô hình của biểu mẫu sẽ được tìm kiếm,. Bạn có thể chỉ định tên hoặc kiểu bảng tùy chỉnh để tìm kiếm
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];06
Theo mặc định, tên trường sẽ được sử dụng làm cột để tìm kiếm. Bạn có thể chỉ định một cột tùy chỉnh để tìm kiếm
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];07
Đôi khi, bạn có thể muốn bỏ qua một mô hình nhất định trong quá trình xác thực duy nhất. Ví dụ: xem xét biểu mẫu "cập nhật hồ sơ" bao gồm tên, địa chỉ email và vị trí của người dùng. Bạn có thể sẽ muốn xác minh rằng địa chỉ email là duy nhất. Tuy nhiên, nếu người dùng chỉ thay đổi trường tên chứ không phải trường email, bạn không muốn xảy ra lỗi xác thực vì người dùng đã là chủ sở hữu của địa chỉ email được đề cập
Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];08
Nếu bạn đang sử dụng bảng quản trị, bạn có thể dễ dàng bỏ qua bản ghi hiện tại bằng cách sử dụng
Field::make['name']->alphaDash[]
4 thay thếValidator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];09
Bạn có thể tùy chỉnh thêm quy tắc bằng cách chuyển a đến tham số
Field::make['name']->alphaDash[]
2Field::make['name']->alpha[]
0UUID
Trường phải là mã định danh duy nhất toàn cầu RFC 4122 [phiên bản 1, 3, 4 hoặc 5] hợp lệ [UUID].
Field::make['name']->alpha[]
1quy tắc khác
Bạn có thể thêm các quy tắc xác thực khác vào bất kỳ trường nào bằng phương pháp
Field::make['name']->alphaDash[]
6Field::make['name']->alpha[]
2Có thể tìm thấy danh sách đầy đủ các quy tắc xác thực trong
Những nguyên tắc tập quán
Bạn có thể sử dụng bất kỳ quy tắc xác thực tùy chỉnh nào như bạn sẽ làm trong
Field::make['name']->alpha[]
3Bạn cũng có thể sử dụng
Field::make['name']->alpha[]
4thuộc tính xác thực
Khi xác thực trường không thành công, nhãn của chúng được sử dụng trong thông báo lỗi. Để tùy chỉnh nhãn được sử dụng trong thông báo lỗi trường, hãy sử dụng phương pháp
Field::make['name']->alphaDash[]
7Field::make['name']->alpha[]
5Gửi thông báo xác thực
Nếu bạn muốn gửi thông báo khi xảy ra lỗi xác thực, bạn có thể làm như vậy bằng cách sử dụng phương pháp
Field::make['name']->alphaDash[]
8 trên thành phần Livewire của mìnhField::make['name']->alpha[]
6Ngoài ra, nếu bạn đang sử dụng bảng quản trị và bạn muốn hành vi này trên tất cả các trang, hãy thêm hành vi này vào bên trong phương thức
Field::make['name']->alphaDash[]
9 của Validator::make[$data, [ 'email' => 'required|unique:App\Models\User,email_address' ]];30 của bạn