14. Validation & Error Mesaage - mzm-dev/laravel-latihan GitHub Wiki

Contoh Form Input bersama Message Validation

<div class="form-group">
    <label for="nama">{{ __('Nama Pegawai') }}</label>
    <input type="text" class="form-control @error('nama') is-invalid @enderror" id="nama" name="nama" value="{{ old('nama', $pegawai->nama ?? null) }}">

    @error('nama')
        <span class="invalid-feedback" role="alert">
            <strong>{{ $message }}</strong>
        </span>
    @enderror
</div>

<div class="form-group">
    <label for="emel">{{ __('E-mel Rasmi') }}</label>
    <input type="email" class="form-control @error('emel') is-invalid @enderror" id="emel" name="emel" value="{{ old('emel', $pegawai->emel ?? null) }}">

    @error('emel')
        <span class="invalid-feedback" role="alert">
            <strong>{{ $message }}</strong>
        </span>
    @enderror
</div>

Semasa pengguna memasukkan input contoh Nama Penuh, perlu menukar huruf besar secara automatik No Kad Pengenalan, memadam selain aksara nombor automatik

  <input type="text" onkeyup="this.value = this.value.toUpperCase();">
  <input type="text" onkeyup="this.value = this.value.replace(/[^0-9]/g, '');">

Validation semasa Store()

$request->validate([ //Mula Rule validation
    'nama' => ['required','min:3', 'regex:/[a-zA-Z @\/\'`]+$/','unique:pegawai'],
    'nokp' => ['required', 'regex:/^(\d{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3(0|1))\d{2}\d{4})$/','unique:pegawai']
    'emel' => ['required','regex:/^.+\.(gov\.my)$/','unique:pegawai'],
    'negeri_id' => 'required',
    'daerah_id' => 'required',
    'jawatan_id' => 'required',
    'jabatan_id' => 'required',
    'no_telefon_pejabat' => ['required', 'regex:/^[0|1][0-9]\d{7,9}$/'],
    'no_telefon_bimbit' => ['nullable', 'regex:/^[0|1][0-9]\d{7,9}$/'],
],[//Selaras bentuk mesej yang sama; attributes berbeza
    'required'=>':attribute diperlukan.',
    'required.negeri_id'=>'Sila buat pilihan :attribute.',
    'unique'=>':attribute telah wujud.',
    'min'=>':attribute terlalu ringkas, minima 3 aksara.',
    'regex'=>':attribute format tidak sah.',            
    'regex.emel'=>':attribute rasmi sahaja.',
],[// Rename field ke perkataan boleh difaham (jika perlu/berlainan)
    'nama'=>'Nama Pegawai',
    'nokp'=>'No Kad Pengenalan',
    'emel'=>'Alamat E-mel',
    'negeri_id'=>'Negeri',
    'daerah_id'=>'Daerah',
    'jawatan_id'=>'Jawatan',
    'jabatan_id'=>'Jabatan',
]);

Validation semasa update()

$request->validate([  //Mula Rule validation          
    'nama' => ['required','min:3', 'regex:/[a-zA-Z @\/\'`]+$/','unique:pegawai,nama,'.$pegawai->id],
    'nokp' => ['required', 'regex:/^(\d{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3(0|1))\d{2}\d{4})$/','unique:pegawai,nokp,'.$pegawai->id]
    'emel' => ['required','regex:/^.+\.(gov\.my)$/','unique:pegawai,emel,'.$pegawai->id],
    'negeri_id' => 'required',
    'daerah_id' => 'required',
    'jawatan_id' => 'required',
    'jabatan_id' => 'required',
    'no_telefon_pejabat' => ['required', 'regex:/^[0|1][0-9]\d{7,9}$/'],
    'no_telefon_bimbit' => ['nullable', 'regex:/^[0|1][0-9]\d{7,9}$/'],
],[//Selaras bentuk mesej yang sama; attributes berbeza
    'required'=>':attribute diperlukan.',
    'required.negeri_id'=>'Sila buat pilihan :attribute.',
    'unique'=>':attribute telah wujud.',
    'min'=>':attribute terlalu ringkas, minima 3 aksara.',
    'regex'=>':attribute format tidak sah.',            
    'regex.emel'=>':attribute rasmi sahaja.',
],[// Rename field ke perkataan boleh difaham (jika perlu/berlainan)
    'nama'=>'Nama Pegawai',
    'nokp'=>'No Kad Pengenalan',
    'emel'=>'Alamat E-mel',
    'negeri_id'=>'Negeri',
    'daerah_id'=>'Daerah',
    'jawatan_id'=>'Jawatan',
    'jabatan_id'=>'Jabatan',
]);

Regular Express : Nama Pegawai

    'regex:/[a-zA-Z @\/\'`]+$/' 

Format dibenarkan

  • Mohamad Zaki Mustafa
  • Nur'Hayati
  • Dato' Abdul
  • Raja A/L Maniam

Regular Express : E-mel

    'regex:/^.+\.(gov\.my|com\.my|my|com)$/' 

Format dibenarkan

    'regex:/^.+\.(gov\.my)$/' 

Format dibenarkan


Regular Express : No Kad Pengenalan

    'regex:/^(\d{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3(0|1))\d{2}\d{4})$/'

Regular Express : No Telefon

    'regex:/^[0|1][0-9]\d{7,9}$/'

Format dibenarkan

  • 067652891
  • 0127652891
⚠️ **GitHub.com Fallback** ⚠️