Laravel: Cara Validasi Record Ada di Database

Terkadang, kita perlu melakukan validasi apakah data yang dikirim pengguna ada di dalam database atau tidak. Misalnya saja saat mau menulis artikel pengguna diharuskan memilih kategori maka kita dapat memeriksa apakah kategori yang dipilih benar-benar dari daftar yang tersedia atau asal milih saja.

Misalnya saja kita memiliki 3 kategori artikel pada tabel categories dengan id masing-masing seperti berikut:

  1. PHP
  2. VueJS
  3. CSS

Maka pengguna hanya boleh memilih di antara ketiganya saja. Untuk itu, kita bisa melakukan validasi menggunakan method exists yang telah disediakan Laravel.

Contohnya adalah sebagai berikut:

'category_id'  => 'required|int|exists:categories,id'

Pada contoh aturan(rule) validasi di atas dapat dilihat ada 3 kondisi yang harus terpenuhi pada field category_id yaitu:

  • required menakan harus diisi
  • int menandakan harus berupa data tipe integer
  • exists menandakan nilai yang dikirim pengguna harus sudah tersedia pada tabel categories dengan key id

Contoh implementasi lengkapnya adalah sebagai berikut:

$rules     = [
            'title' => 'required|string|min:10|max:50',
'content' => 'required|string',
            'device_id'  => 'required|int|exists:categories,id',
        ];
        $validator = Validator::make( $request->post(), $rules );
        if ( $validator->fails() ) {
            return apiValidationError( $validator );
        }

Begitulah cara untuk melakukan validasi apakah refensi data yang dikirim pengguna benar-benar sudah ada di database atau tidak.

Komentar