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.
Comments