Xác thực duy nhất tùy chỉnh trong Laravel

Ở đâ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

  1. Xác thực cột duy nhất theo tên bảng
  2. Kiểm tra xác thực duy nhất theo mô hình
  3. Kiểm tra cột duy nhất với id khi cập nhật dữ liệu
  4. 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ố 8

Sau 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']

0

Ngoà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']

2

Khác biệt

Giá trị trường phải khác với giá trị khác.

Field::make['startDate']->after['tomorrow']

3

khô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']

4

khô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']

5

kế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']

6

liệt kê

Trường phải chứa giá trị enum hợp lệ.

Field::make['startDate']->after['tomorrow']

7

tồn tại

Giá trị trường phải tồn tại trong cơ sở dữ liệu.

Field::make['startDate']->after['tomorrow']

8

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

Field::make['startDate']->after['tomorrow']

9

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

Field::make['endDate']->after['startDate']

0

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[]

2

Field::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']

2

Lớn hơn

Giá trị trường phải lớn hơn giá trị khác.

Field::make['endDate']->after['startDate']

3

Lớ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']

4

Trườ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']

6

JSON

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']

0

Nhiều Của

Trường phải là bội số của giá trị.

Field::make['startDate']->afterOrEqual['tomorrow']

1

không vào

Trường không được đưa vào danh sách giá trị đã cho.

Field::make['startDate']->afterOrEqual['tomorrow']

2

Khô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']

3

Nullable

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']

4

Cấm

Giá trị trường phải trống.

Field::make['startDate']->afterOrEqual['tomorrow']

5

Cần thiết

Giá trị trường không được để trống.

Field::make['startDate']->afterOrEqual['tomorrow']

6

bắ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']

7

Bắ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']

8

bắ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']

9

Bắ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[]

2

Field::make['name']->alpha[]

0

UUID

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[]

1

quy 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[]

6

Field::make['name']->alpha[]

2

Có 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[]

3

Bạn cũng có thể sử dụng

Field::make['name']->alpha[]

4

thuộ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[]

7

Field::make['name']->alpha[]

5

Gử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ình

Field::make['name']->alpha[]

6

Ngoà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

Làm cách nào để đặt xác thực duy nhất trong Laravel?

Sử dụng quy tắc xác thực duy nhất trong Laravel Form Request .
$table->string['title']->unique[];.
nghệ nhân php làm. yêu cầu StorePostRequest. .

Chủ Đề