Cara yang disarankan untuk menulis logika validasi dan otorisasi adalah dengan meletakkan logika tersebut di kelas permintaan terpisah. Dengan cara ini kode pengontrol Anda akan tetap bersih.
Anda dapat membuat kelas permintaan dengan menjalankan php artisan make:request SomeRequest
.
Di setiap rules()
metode kelas permintaan, tentukan aturan validasi Anda:
//SomeRequest.php
public function rules()
{
return [
"name" => [
'required',
'array', // input must be an array
'min:3' // there must be three members in the array
],
"name.*" => [
'required',
'string', // input must be of type string
'distinct', // members of the array must be unique
'min:3' // each string must have min 3 chars
]
];
}
Di pengontrol Anda, tulis fungsi rute Anda seperti ini:
// SomeController.php
public function store(SomeRequest $request)
{
// Request is already validated before reaching this point.
// Your controller logic goes here.
}
public function update(SomeRequest $request)
{
// It isn't uncommon for the same validation to be required
// in multiple places in the same controller. A request class
// can be beneficial in this way.
}
Setiap kelas permintaan dilengkapi dengan hook / metode pra dan pasca-validasi yang dapat disesuaikan berdasarkan logika bisnis dan kasus khusus untuk mengubah perilaku normal kelas permintaan.
Anda dapat membuat kelas permintaan induk untuk jenis permintaan serupa (misalnya web
dan api
) permintaan dan kemudian merangkum beberapa logika permintaan umum di kelas induk ini.
$request->validate([...])
. Pengecualian akan dimunculkan jika data gagal validasi.