Penyesuaian Fitur Register
Contents
Dengan adanya penambahan kolom pada tabel users, maka ada beberapa penyesuaian yang perlu kita lakukan pada fitur registrasi agar tidak memicu error dan dapat menyimpan data dengan baik.
Penyesuaian Views
Edit file resources\views\auth\register.blade.php , tambahkan form field berikut di bawah BS5 row untuk konfirmasi password (baris 63):
<div class="row mb-3"> <label for="nik" class="col-md-4 col-form-label text-md-end">{{ __('NIK') }}</label> <div class="col-md-6"> <input id="nik" type="text" class="form-control @error('nik') is-invalid @enderror" name="nik" value="{{ old('nik') }}" autocomplete="nik"> @error('nik') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="row mb-3"> <label for="telp" class="col-md-4 col-form-label text-md-end">{{ __('Telp') }}</label> <div class="col-md-6"> <input id="telp" type="text" class="form-control @error('telp') is-invalid @enderror" name="telp" value="{{ old('telp') }}" autocomplete="telp"> @error('telp') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div>
Tentunya akan lebih baik lagi jika label bagi form dan tampilan lain kita sesuaikan juga menggunakan Bahasa Indonesia. Namun, jangan mengganti atribut id dan name elemen form bawaan dari Laravel UI, apalagi route. Contoh tampilan setelah disesuaikan adalah sebagai berikut:
Penyesuaian Model
Model menentukan interaksi antara aplikasi dengan tabel yang berada di database. Dengan adanya perubahan yang kita lakukan sebelumnya pada tabel users, maka model User yang berada di app\Models\User.php perlu kita sesuaikan agar property $fillable
menjadi seperti ini:
protected $fillable = [ 'name', 'email', 'password', 'nik', 'telp', 'level' ];
Penyesuaian Controller
Di Laravel, Controller sebagai pengendali logic aplikasi berada di folder app\Http\Controllers. Edit file app\Http\Controllers\Auth\RegisterController.php sebagai berikut:
Tambahkan 2 aturan validator baru di bawah aturan yang sudah ada:
'nik' => ['numeric','unique:users','digits:16'], 'telp' => ['required','string','min:5','max:20'],
Level tidak ditambahkan pada validator, karena selain sudah memiliki default value, nilainya tidak dimintakan melalui form Registrasi. Selanjutnya, pada kode untuk User::create()
, tambahkan 2 baris berikut:
'nik' => $data['nik'], 'telp' => $data['telp'],
Pengujian Fitur Registrasi dan Login
Sekarang, seharusnya fitur register sudah berjalan dengan lancar dan bisa memasukkan data dengan baik di tabel users. Buatlah setidaknya 3 contoh user baru untuk keperluan pengujian, dan jangan lupa catat kombinasi email serta password bagi masing-masing user tersebut. Lalu, lakukan penyesuaian (Edit) melalui phpMyAdmin untuk membedakan level pengguna bagi user yang sudah dibuat, pastikan ada yang mewakili dari masing-masing level: admin, petugas, dan masyarakat.