Validator Rules
Di bawah adalah daftar rule-rule validator yang dikenali sampai saat ini.
- array
- callback
- config
- date
- empty
- equals_to
- file
- in
- ip
- json
- length
- notin
- numeric
- object
- regex
- required
- required_on
- text
- url
array
// ...
'array' => true
// ...
Validator untuk menentukan jika nilai adalah array. Nilai yang
diterima adalah true
untuk menentukan nilai adalah array. indexed
untuk menentukan bahwa nilai adalah indexed array atau assoc
untuk
menentukan jika nilai adalah array yang bukan indexed array.
callback
// ...
'callback' => 'Class::method'
// ...
Menggunakan handler lain untuk validasi suatu nilai. Callback diharapkan tidak mengembalikan nilai apapun jika valid, dan mengembalikan array error dan tambahan parameter untuk locale.
$errors = ['20.0', ['value' => $value]];
Fungsi callback akan di panggil dengan parameters sebagai berikut:
Class::method($value, $options, $object, $field, $rules): ?array;
Dimana:
$value
Nilai object yang akan di validasi$options
Nilai validator rule.$object
Semua data object yang sedang di validasi dalam satu level parent.$field
Nama properti dari$object
yang akan di validasi.$rules
Semua rules yang sedang di validasi untuk$value
ini.
config
// ...
'config' => [
'prop' => 'wallet.currency',
// 'in' => 'wallet.currency',
// 'is' => 'wallet.currency'
]
// ...
Membandingkan nilai form dengan data config aplikasi. Validator ini memiliki 3 bentuk, yaitu:
prop
Nilai form harus adalah salah satu properti dari config.in
Nilai form harus salah satu dari nilai array config.is
Nilai form harus sama dengan nilai config.
date
// ...
'date' => [
'format' => 'Y-m-d',
'min' => '+1 days', // optional
'min_field' => 'min-date', // optional
'max' => '+7 days', // optional
'max_field' => 'max-date' // optional
]
// ...
Validator untuk nilai date. Penjelasan dari masing-masing properti adalah sebagai berikut:
format
Format tanggal yang diharapkan dikirim oleh client.min
Nilai minimum tanggal yang diterima, akan menggunakan fungsistrtotime
.min_field
Nilai minimum diambil dari field object yang lain, akan dikombinasikan dengan propertimin
jika tersedia.max
Nilai maksimum tanggal yang diterima, akan menggunakan fungsistrtotime
.max_field
Nilai maximum diambil dari field object yang lain, akan dikombinasikan dengan propertimax
jika tersedia.
// ...
'email' => true
// ...
Validator untuk nilai email. Rule ini hanya menerima nilai true
.
empty
Memastikan suatu nilai harus falsy atau bukan.
// ...
'empty' => false
// ...
equals_to
Memastikan nilai yang dimasukan sama dengan nilai properti lain.
// ...
'equals_to' => 'other_field_name'
// ...
file
Memastikan field tersebut adalah referensi dari file upload.
// ...
'file' => true
// ...
in
// ...
'in' => ['a','b']
// ...
Validator untuk memastikan nilai yang dikirim adalah salah satu dari array.
ip
// ...
'ip' => true
'ip' => '4|6'
// ...
Validator untuk memastikan nilai yang dikirim adalah valid ip. Nilai
ini menerima nilai true
untuk menerima nilai valid ip, atau bisa juga
nilai 4 untuk menerima hanya IPv4, atau 6 untuk menerima hanya IPv6.
json
// ...
'json' => true
// ...
Memastikan nilai yang dikirim adalah json string yang bisa di json_decode
.
length
// ...
'length' => [
'min' => :int, // optional if max set.
'max' => :int // optional if min set.
]
// ...
Validator untuk panjang suatu string atau array.
notin
// ...
'notin' => ['a','b']
// ...
Validator kebalikan dari in
, rule ini memastikan nilai yang diinput
bukan salah satu dari list.
numeric
// ...
'numeric' => true,
'numeric' => [
'min' => :int, // optional
'max' => :int, // optional
'decimal' => :int // optional
]
// ...
Validator untuk nilai numeric. Rule ini bisa menerima nilai
true
untuk validasi numeric saja, atau bisa juga array dengan
properti min
, max
, dan/atau decimal
untuk menentukan minimal
nilai, maksimal nilai, dan decimal
untuk banyaknya angka dibelakang
koma.
object
// ...
'object' => true
// ...
Validator untuk mencek jika nilai adalah object.
regex
// ...
'regex' => '!^.+$!'
// ...
Validator yang akan mencocokan nilai regex dengan nilai data yang dikirim.
required
// ...
'required' => true
// ...
Validator untuk memastikan nilai harus ada dan bukan null. Nilai 0, dan false akan dianggap valid.
required_on
// ...
'required_on' => [
'field' => [
'operator' => '=',
'expected' => '2'
],
'field' => [
'operator' => '!=',
'expected' => NULL
],
'field' => [
'operator' => 'in',
'expected' => [1,2]
],
'field' => [
'operator' => '!in',
'expected' => [1,2]
]
]
// ...
Validator untuk memastikan nilai harus ada dan bukan null berdasarkan suatu kondisi
nilai dari kolom lain. Nilai 0, dan false akan dianggap valid. Nilai operator yang dikenali
adalah =
, >
, <
, >=
, <=
, in
, !in
.
text
// ...
'text' => 'alnumdash'
// ...
Validator text. Rule ini menerima nilai:
slug
untuka-z
,0-9
, dan-_
.alnumdash
untuka-z
,A-Z
,0-9
, dan-
.alpha
untuka-z
, danA-Z
.alnum
untuka-z
,A-Z
, dan0-9
.
url
// ...
'url' => true
'url' => [
'path' => true, // optional
'query' => true | ['page', 'rpp'], // optional
]
// ...
Valiator untuk memastikan nilai yang dikirim adalah valid url.
Rule ini menerima nilai true
untuk memastikan nilai adalah valid
url
. Atau bisa juga array yang berisi beberapa sub-properti
untuk memastikan url memiliki kondisi-kondisi lain. Nilai sub-properti
query
menerima nilai true
yang memastikan url memiliki query
string, atau array yang memastikan query string memiliki query tersebut.