karya solusi digital

Menambahkan Parameter ke Aturan Validasi di Laravel

Admin
Admin 01 Sep 2024

Memahami Aturan Validasi Kustom

Laravel menyediakan fleksibilitas yang tinggi dalam mendefinisikan aturan validasi. Selain aturan bawaan seperti required, email, min, dan lainnya, kita dapat membuat aturan kustom untuk memenuhi kebutuhan spesifik aplikasi kita. Aturan kustom ini memungkinkan kita untuk melakukan validasi data yang lebih kompleks dan sesuai dengan logika bisnis kita.

Menambahkan Parameter ke Aturan Kustom

Untuk menambahkan parameter ke aturan kustom, kita dapat memanfaatkan closure atau kelas validator. Berikut adalah penjelasan keduanya:

1. Menggunakan Closure

  • Definisi: Closure adalah fungsi anonim yang dapat kita definisikan langsung di dalam aturan validasi.

  • Cara Kerja: Kita dapat meneruskan parameter tambahan ke dalam closure ini, lalu melakukan logika validasi di dalamnya.

  • Contoh:

PHP

Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
    // $parameters[0] akan berisi nilai parameter pertama
    // $parameters[1] akan berisi nilai parameter kedua, dst.

    return $value > $parameters[0]; // Contoh validasi: nilai harus lebih besar dari parameter pertama
}); 
  • Penggunaan:

    PHP

    $validatedData = Validator::make($data, [
        'field' => 'custom_rule:10', // Parameter 10 akan diteruskan ke closure
    ])->validate(); 

2. Menggunakan Kelas Validator

  • Definisi: Kita dapat membuat kelas validator kustom yang mewarisi dari Illuminate\Validation\Validator.

  • Cara Kerja: Dalam kelas ini, kita dapat mendefinisikan metode validateAttribute untuk melakukan validasi terhadap atribut tertentu.

  • Contoh:

PHP

class CustomValidator extends Validator
{
    public function validateCustomRule($attribute, $value, $parameters, $validator)
    {
        // Logika validasi dengan menggunakan parameter
        return $value === 'value_' . $parameters[0];
    }
}

// Penggunaan
Validator::extend('custom_rule', CustomValidator::class . '@validateCustomRule'); 

Contoh Penggunaan dalam Form Request

PHP

use Illuminate\Foundation\Http\FormRequest;

class StorePostRequest extends FormRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()   
    {
        return [
            'title' => 'required|max:255',
            'body' => 'required|min:10|custom_rule:my_custom_value',   
        ];
    }
}

Tips Tambahan

  • Nama Parameter: Parameter yang kita berikan akan tersedia dalam array $parameters di dalam closure atau metode validator.

  • Multiple Parameter: Kita dapat meneruskan beberapa parameter dengan memisahkannya menggunakan koma, misalnya custom_rule:10,20.

  • Custom Message: Untuk mengatur pesan kesalahan kustom, gunakan metode replace pada instance validator.

  • Reuse: Aturan kustom yang telah dibuat dapat digunakan kembali di berbagai tempat dalam aplikasi.

Kesimpulan

Dengan menggunakan aturan validasi kustom, kita dapat membuat validasi yang lebih spesifik dan sesuai dengan kebutuhan aplikasi kita. Fitur menambahkan parameter memungkinkan kita untuk membuat aturan validasi yang lebih dinamis dan fleksibel.