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:
$valueNilai object yang akan di validasi$optionsNilai validator rule.$objectSemua data object yang sedang di validasi dalam satu level parent.$fieldNama properti dari$objectyang akan di validasi.$rulesSemua rules yang sedang di validasi untuk$valueini.
config
// ...
'config' => [
'prop' => 'wallet.currency',
// 'in' => 'wallet.currency',
// 'is' => 'wallet.currency'
]
// ...
Membandingkan nilai form dengan data config aplikasi. Validator ini memiliki 3 bentuk, yaitu:
propNilai form harus adalah salah satu properti dari config.inNilai form harus salah satu dari nilai array config.isNilai 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:
formatFormat tanggal yang diharapkan dikirim oleh client.minNilai minimum tanggal yang diterima, akan menggunakan fungsistrtotime.min_fieldNilai minimum diambil dari field object yang lain, akan dikombinasikan dengan propertiminjika tersedia.maxNilai maksimum tanggal yang diterima, akan menggunakan fungsistrtotime.max_fieldNilai maximum diambil dari field object yang lain, akan dikombinasikan dengan propertimaxjika 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:
sluguntuka-z,0-9, dan-_.alnumdashuntuka-z,A-Z,0-9, dan-.alphauntuka-z, danA-Z.alnumuntuka-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.