بِسْمِ اللَّهِ Mudah-mudahan tips dan trik Codeigniter 4 – Myth:Auth menambahkan informasi User ini bermanfaat
Informasi tentang User dalam hal ini field-field yang disediakan oleh Myth:Auth sebenarnya sudah cukup. Tapi Myth:Auth sendiri tidak membatasi terkait informasi tersebut. Artinya kita bisa menambah dan menguranginya. Penambahan disini secukupnya saja dan jangan terlalu banyak. Karena terlalu banyak informasi yang akan disimpan juga akan berpengaruh terhadap performance website itu sendiri.
Sepertinya memang sudah menjadi kebiasaan kita yang selalu kurang dengan yang tersedia. Baiklah tanpa berpanjang lebar, langsung saja kita mulai
Persiapan Codeigniter 4 – Myth:Auth menambahkan informasi User
Sama dengan Codeigniter 4 – Login multiuser dengan library Myth:Auth kurang lebih seperti ini:
Editor yang digunakan adalah Visual Studio Code
Project Codeigniter, untuk membuatnya bisa dilihat tutorial Codeigniter 4 Pengenalan dan Instalasi.
Sudah terkoneksi dengan database, silakan lihat Codeigniter 4 – Koneksi ke Database
Librari Myth:Auth untuk baca-baca bisa lihat di link ini
Pertama
Lakukan Instalasi myth-auth dengan Composer, silakan buka terminal, dan ketikan perintah yang tadi disebutkan diatas
composer require myth/auth
Silakan cek pada folder vendor, cari myth dan tampilan berikut menandakan instalasi berhasil
Kedua
Berikutnya lakukan konfigurasi, anggap saja instalasi dengan composer berjalan lancar. Sesuai dokumentasi yang kita lakukan yaitu konfigurasi library myth/auth, yang pertama dilakukan adalah edit file app\Config\Email.php pada bagian fromName dan fromEmail. Perubahan ini untuk keperluan validasi, kirim email dan lain-lain.
Kemudian edit file app\Config\Validation.php dengan menambahkan script ini pada array ruleSets
\Myth\Auth\Authentication\Passwords\ValidationRules::class,
Ketiga
Nah bagian inti dalam menambahkan informasi User. Sebelum melakukan proses migrasi data (menjalankan perintah php spark migrate -all). Misalnya saya akan menambahkan informasi Nama Lengkap (fullname) dan Foto (user_image). Maka lakukan langkah-langkah berikut:
Tambah informasi atau field dalam file migrasi data (2017-11-20-223112_create_auth_tables.php) \vendor\myth\auth\src\Database\Migrations\2017-11-20-223112_create_auth_tables.php. Silakan ubah script ini:
$this->forge->addField([
'id' => ['type' => 'int', 'constraint' => 11, 'unsigned' => true, 'auto_increment' => true],
'email' => ['type' => 'varchar', 'constraint' => 255],
'username' => ['type' => 'varchar', 'constraint' => 30, 'null' => true],
'password_hash' => ['type' => 'varchar', 'constraint' => 255],
'reset_hash' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'reset_at' => ['type' => 'datetime', 'null' => true],
'reset_expires' => ['type' => 'datetime', 'null' => true],
'activate_hash' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'status' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'status_message' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'active' => ['type' => 'tinyint', 'constraint' => 1, 'null' => 0, 'default' => 0],
'force_pass_reset' => ['type' => 'tinyint', 'constraint' => 1, 'null' => 0, 'default' => 0],
'created_at' => ['type' => 'datetime', 'null' => true],
'updated_at' => ['type' => 'datetime', 'null' => true],
'deleted_at' => ['type' => 'datetime', 'null' => true],
]);
Menjadi script ini
$this->forge->addField([
'id' => ['type' => 'int', 'constraint' => 11, 'unsigned' => true, 'auto_increment' => true],
'email' => ['type' => 'varchar', 'constraint' => 255],
'username' => ['type' => 'varchar', 'constraint' => 30, 'null' => true],
'fullname' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'user_image' => ['type' => 'varchar', 'constraint' => 255, 'default' => 'default.svg'],
'password_hash' => ['type' => 'varchar', 'constraint' => 255],
'reset_hash' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'reset_at' => ['type' => 'datetime', 'null' => true],
'reset_expires' => ['type' => 'datetime', 'null' => true],
'activate_hash' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'status' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'status_message' => ['type' => 'varchar', 'constraint' => 255, 'null' => true],
'active' => ['type' => 'tinyint', 'constraint' => 1, 'null' => 0, 'default' => 0],
'force_pass_reset' => ['type' => 'tinyint', 'constraint' => 1, 'null' => 0, 'default' => 0],
'created_at' => ['type' => 'datetime', 'null' => true],
'updated_at' => ['type' => 'datetime', 'null' => true],
'deleted_at' => ['type' => 'datetime', 'null' => true],
]);
Simpan file tersebut
Kemudian pastikan project codeigniter Anda sudah terhubung database dengan benar, dan jalankan perintah ini di terminal
php spark migrate -all
Gambar ini menunjukkan migrasi tabel sudah benar dan selesai
Migrasi tabel berhasil, bisa dicek didatabase disana akan dibuatkan tabel-tabel (auth_activation_attempts, auth_groups, auth_groups_permissions, auth_groups_users, auth_logins, auth_permissions, auth_reset_attempts, auth_tokens, auth_users_permissions, users) untuk myth/auth seperti ini
Kemudian silakan cek tabel users, pastikan fullname dan user_image ada didalam tabel. Seperti gambar dibawah ini
Keempat
Agar field yang sudah ditambahkan bisa diupdate, maka lakukan perubahan $allowedFields pada UserModel yang lokasi filenya ada di \vendor\myth\auth\src\Models\UserModel.php.
protected $allowedFields = [
'email', 'username', 'password_hash', 'reset_hash', 'reset_at', 'reset_expires', 'activate_hash',
'status', 'status_message', 'active', 'force_pass_reset', 'permissions', 'deleted_at', 'fullname',
'user_image'
];
Simpan file tersebut
Akhirnya
Sampai disini sudah selesai untuk tips dan trik Codeigniter 4 – Myth:Auth menambahkan informasi User. Silakan dilanjutkan dan dikembangkan ke tutorial Codeigniter 4 – Login multiuser dengan library Myth:Auth
Mudah-mudahan bermanfaat.
You ought to take part in a contest for one of the best websites on the net. I am going to highly recommend this website!