Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Validasi Data di Laravel: Panduan Lengkap untuk Developer

1 min read .
Validasi Data di Laravel: Panduan Lengkap untuk Developer

Validasi itu penting banget di web app biar data yang masuk sesuai standar dan nggak bikin error. Laravel punya cara elegan dan simpel buat nge-handle validasi ini. Yuk, kita bahas dari yang dasar sampai yang lebih kompleks.

1. Validasi Dasar

Laravel bikin validasi data masuk jadi gampang. Biasanya pakai metode validate dari Request:

use Illuminate\Http\Request;

public function store(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|min:8|confirmed',
    ]);

    // Kalau validasi lolos, lanjut simpan data
}

Kalau validasi gagal, Laravel otomatis redirect dan simpan error di session, siap ditampilkan di view.

2. Pesan Error Kustom

Biar user experience lebih enak, kamu bisa kasih pesan error sendiri:

$validatedData = $request->validate([
    'name' => 'required|max:255',
    'email' => 'required|email|unique:users,email',
    'password' => 'required|min:8|confirmed',
], [
    'name.required' => 'Tolong masukkan nama Anda.',
    'email.required' => 'Kami perlu alamat email Anda!',
    'password.min' => 'Password minimal 8 karakter.',
]);

3. Validasi dengan Form Request

Kalau validasi lebih kompleks, mending pakai Form Request:

php artisan make:request StoreUserRequest

Di class StoreUserRequest:

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StoreUserRequest extends FormRequest
{
    public function rules()
    {
        return [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users,email',
            'password' => 'required|min:8|confirmed',
        ];
    }
}

Controller cukup pakai class ini:

use App\Http\Requests\StoreUserRequest;

public function store(StoreUserRequest $request)
{
    $validatedData = $request->validated();
    // Lanjut simpan data
}

4. Validasi Kondisional

Kadang, validasi harus berlaku hanya jika input tertentu ada:

$request->validate([
    'email' => 'required|email',
    'password' => 'sometimes|required|min:8|confirmed',
]);

Password cuma diperiksa kalau ada di input.

5. Validasi Kompleks dengan Closure

Bisa juga pakai closure untuk aturan custom:

use Illuminate\Validation\Rule;

$request->validate([
    'email' => [
        'required',
        'email',
        function ($attribute, $value, $fail) {
            if ($value === 'test@example.com') {
                $fail($attribute.' tidak valid.');
            }
        },
    ],
]);

6. Validasi Array

Kalau input berupa array, Laravel juga mendukung:

$request->validate([
    'photos.*' => 'image|mimes:jpg,jpeg,png|max:2048',
]);

Setiap file di array photos harus berupa gambar maksimal 2MB.

Kesimpulan

Laravel punya sistem validasi yang fleksibel dan powerful. Dari input sederhana sampai form kompleks, semua bisa di-handle dengan mudah. Dengan memahami dasar, pakai pesan error kustom, dan teknik lanjutan seperti validasi kondisional atau kompleks, kamu bisa bikin aplikasi yang lebih robust dan aman.

Lihat Juga

chevron-up