~ We are changing the world with technology. ~

Matt Mullenweg

Mudahnya Membuat Fitur Register Dan Login Pada Laravel 5.4

Mudahnya Membuat Fitur Register Dan Login Pada Laravel 5.4

4515 Dilihat

Kebanyakan dan pada umumnya sebuah aplikasi membutuhkan fitur registrasi dan login, meskipun tidak semua berlaku demikian. Membangun fitur ini bisa jadi cukup rumit. Dalam pembuatannya mencakup pengaturan model, function forgot password, validasi, dan lain-lain.

Kabar baiknya, dengan laravel kita dapat melakukannya hanya dengan menggunakan artisan command yang cukup sederhana. Tapi sebelum menjalankannya, mari kita pahami strukturnya terlebih dahulu.

Struktur Controller

Jika anda menuju path app/Http/Controllers, anda akan melihat Auth folder, dan didalamnya terdapat 4 controller :

  • LoginController

  • RegisterController

  • ForgotPasswordController

  • ResetPasswordController

Mengintip Model User

Laravel juga menyediakan kita sebuah model dengan nama User.php

Model pada laravel tidak memiliki folder tersendiri, file model berada didalam folder app.

Melihat dengan Migrations

Secara default laravel juga menyediakan beberapa migration file yang digunakan untuk membuat table ke database. Bagi sebagian orang mungkin tidak familiar dan bertanya-tanya apa itu migration, ini adalah cara yang simple untuk me-manage database dari sebuah file php. Folder migrations dapat anda temukan pada : database/migrations

Mari kita buka salah satu migration, create_users_table.php :

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Jadi didalamnya terdapat dua method, UP dan DOWN. UP method menginstruksikan ke DB untuk melakukan perubaha sesuai yang kita inginkan. DOWN method digunakan untuk melakukan rollback migration.

Perhatikan ketika kita membuat tables, kita menggunakan plural name (jamak). Kita telah memiliki users table, yang akan diakses oleh User model. Sebagian dari kita mungkin menganggap migration ini cukup merepotkan atau mungkin saja kita tidak menyukainya. Sama halnya ketika saya pertama kali belajar tentang migration, juga saya berpikiran demikan. Saya yakin bahwa anda lebih nyaman ketika menggunakan mysql workbench contohnya dalam membuat struktur database karena kemudahan yang ditawarkannya. Namun, setelah bekerja dengan migrations, saya merasa migration lebih mudah dan efisien untuk digunakan, dan lebih mudah dalam melacak apa yang telah anda lakukan dengan migration, karena migration akan mencatat seluruh aktivitas database anda.

Pada dokumentasi laravel, perintah migration sudah sangat lengkap dan mudah dipahami, jadi anda dapat menemukan referensi apa yang anda butuhkan.

Tapi sebelum anda melakukan migrate, kita harus melakukan beberapa perubahan pada : config/database.php

Lakukan perubahan pada dua bagian yang terdapat di ‘mysql’ setting :

'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',

Menjadi

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',

Kita melakukan ini karena pada versi mysql yang lama kemungkinan akan menampilkan error character length pada table ketika kita melakukan migration. Setelah perubahan tersebut kita lakukan, sekarang saatnya untuk melakukan migrate. Sebagaimana yang telah saya sebutkan sebelumnya, kita memiliki dua migration yang siap untuk dijalankan.

Pada command line, ketikkan perintah berikut :

php artisan migrate

Dan seharusnya anda akan mendapatkan feedback bahwa migration berhasil

dan untuk memastikannya, anda dapat mengeceknya langsung ke database anda, untuk lebih mudah silahkan buka phpmyadmin

Anda akan menemukan 3 buah table, satu untuk mencatat migrations, dua lainnya adalah table users dan password_resets.

Selanjutnya kita akan coba melakukan rollback. Ketikkan perintah berikut pada command line :

php artisan migrate:rollback

Dan hasilnya akan terlihat seperti ini

Sebagimana yang terlihat, users dan password_resets telah dihapus, tapi migration table tetap ada. Dan memang inilah yang kita harapkan, jadi tenang saja. Kita jangan pernah melakukan modifikasi migrations table. Karena hal tersebut akan mengacaukan histori migration anda dan tentu saja hal itu tidak di inginkan.

Jika kita ingin mengembalikan seperti semula dimana terdapat users dan password_resets table, cukup lakukan migration lagi.

php artisan migrate

pastikan untuk memeriksa kembali apakah table sudah dibuat. Laravel memiliki cara spesifik untuk menentukan seberapa banyak step rollback yang kita inginkan

php artisan migrate:rollback --step=1

Hal tersebut bisa dilakukan jika anda hanya ingin melakukan rollback secara spesifik.

Tampaknya artikel ini sudah terlalu panjang untuk diteruskan, so kita lanjutkan mudahnya membuat fitur register dan login pada laravel 5.4 pada artikel selanjutnya. Semoga bermanfaat.

Full Stack Developer & Remote Worker salah satu perusahaan asal Australia. Senang dengan teknologi baru. Laravel addict yang tidak fanatik. Merekam jejak dengan menulis

Cara Membuat Sistem Komentar Dengan Laravel 7 Laravel

Cara Membuat Sistem Komentar Dengan Lara...

Membangun sebuah aplikasi yang membutuhkan feedback dari penggunanya, seperti blog, e-commerce dan lain sebagainya membutuhkan sistem komentar untuk saling interaksi antara pemilik dan pengguna atau a...

Cara Upload File ke Amazon S3 Menggunakan Laravel 7 Laravel

Cara Upload File ke Amazon S3 Menggunaka...

Mengelola data dengan format file umumnya menjadi bagian yang sering kali ditemukan pada sebuah aplikasi, sebut saja avatar atau file gambar untuk setiap users, pdf, video dan lain sebagainya. Berikut...

Laravel Multiple Database MySql & MongoDB Laravel

Laravel Multiple Database MySql & MongoD...

Mengelola lebih dari satu database di Laravel akan menjadi bahan pembahasan kita dimana engine database yang akan digunakan adalah MySQL dan MongoDB, persoalannya adalah bagaimana menggunakan kedua da...

Komentar