
Pengenalan
Validasi input adalah aspek penting yang perlu diperhatikan dalam setiap pengembangan aplikasi/web untuk memastikan data yang masuk sesuai dengan aturan yang telah ditetapkan. Pada Laravel ada beberapa cara untuk melakukan validasi, seperti:
- Validasi di Controller: Aturan validasi ditulis langsung dalam metode controller.
- Validasi Manual: Membuat instance validator secara manual menggunakan
Facades\Validator
->Validator::make()
yang menghasilkan instance validator baru. - Form Request Validation – Aturan validasi dikelola dalam kelas terpisah yang disebut Form Request.
Dari semua metode, Form Request menjadi pilihan yang lebih optimal untuk aplikasi yang besar dan kompleks, karena memisahkan logika validasi dari logika bisnis aplikasi.
Apa Itu Form Request di Laravel?
Form Request di Laravel adalah kelas khusus yang digunakan untuk menangani validasi input dari request. Dengan memanfaatkan Form Request, kita dapat mengelola aturan validasi secara lebih bersih dan terorganisir, terpisah dari controller. Selain itu, Form Request juga mendukung otorisasi, yang memungkinkan kita untuk menentukan apakah pengguna memiliki hak akses untuk membuat permintaan tersebut.
Keuntungan Menggunakan Form Request
Menggunakan Form Request untuk validasi data dalam Laravel memiliki beberapa keunggulan:
- Keterbacaan Kode yang Lebih Baik
Dengan memindahkan logika validasi ke kelas khusus, controller menjadi lebih bersih dan mudah dipahami. Kita tidak perlu menulis kode validasi panjang di dalam controller. - Penggunaan Ulang (Reuse)
Aturan validasi yang didefinisikan dalam Form Request dapat digunakan di beberapa tempat, sehingga mengurangi pengulangan kode. - Dukungan Otorisasi
Selain validasi, Form Request memungkinkan kita menambahkan otorisasi melalui metodeauthorize()
, yang sangat berguna untuk membatasi akses berdasarkan peran atau hak pengguna. - Lebih Mudah Diuji (Testing)
Memisahkan validasi ke dalam Form Request memudahkan pengujian unit pada aturan validasi, terpisah dari logika controller. - Standar Validasi yang Konsisten
Dengan menggunakan Form Request di seluruh aplikasi, kita dapat menjaga standar validasi yang konsisten dan mudah dipahami oleh tim pengembang.
Cara Membuat dan Menggunakan Form Request
Berikut adalah langkah-langkah untuk membuat dan menggunakan Form Request di Laravel.
1. Membuat Form Request
Untuk membuat Form Request, jalankan perintah Artisan berikut:
php artisan make:request StorePostRequest
Kelas Form Request akan dibuat dan ditempatkan di direktori app/Http/Requests.
Jika direktori ini tidak ada, maka akan dibuat ketika kita menjalankan perintah make:request
2. Membuat Rules Validasi
Di dalam kelas StorePostRequest
, kita dapat mendefinisikan aturan validasi di metode rules()
:
public function rules(): array
{
return [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
];
}
3. Otorisasi di Form Request
Jika ada otorisasi yang diperlukan, kita bisa menambahkan logika otorisasi di metode authorize()
:
// hanya mengizinkan user yang sudah login
public function authorize(): bool
{
return auth()->check();
}
Jika kita ingin mengizinkan semua request atau melakukan otorisasi pada bagian aplikasi lain, kita cukup mengembalikan nilai true
:
public function authorize(): bool
{
return true;
}
4. Custom Error Message
Kita dapat mengkustomisasi pesan kesalahan dengan meng-override metode messages()
:
public function messages(): array
{
return [
'title.required' => 'Field Title wajib di isi',
'body.required' => 'Field Message wajib di isi',
];
}
5. Custom Atribut Validasi
Untuk mengganti placeholder :attribute
pada pesan validasi dengan nama atribut khusus, kita dapat menggunakan metode attributes()
:
public function attributes(): array
{
return [
'email' => 'email address',
];
}
6. Menggunakan Form Request di Controller
Kita dapat menggunakan Form Request sebagai parameter pada metode controller yang memproses permintaan :
public function store(StorePostRequest $request)
{
$validatedData = $request->validated();
$post = Post::create($validatedData);
return response()->json($post, 201);
}
Kesimpulan
Form Request di Laravel adalah alat yang sangat berguna untuk menangani validasi input dengan cara yang terstruktur dan efisien. Dengan memisahkan logika validasi dari controller, kita meningkatkan keterbacaan kode dan memudahkan pemeliharaan aplikasi. Keunggulan seperti penggunaan ulang aturan validasi, dukungan otorisasi, dan kemudahan pengujian menjadikan Form Request pilihan ideal, terutama dalam aplikasi yang besar dan kompleks. Dengan mengimplementasikan Form Request, kita tidak hanya memastikan data yang masuk valid, tetapi juga menciptakan standar pengembangan yang lebih konsisten dan profesional.