Laravel: Create Table

MIGRATION

Untuk create table dalam Laravel. Kita akan menggunakan Migration.

Migration adalah satu features dalam Laravel yang memudahkan developer track database scheme.

Laravel menggunakan migration untuk apa perubahan yang telah kita lakukan pada database kita.

Kelebihannya, anda dengan mudah boleh buat kemaskini atau revert balik perubahan dengan sekadar command ringkas.

Cth:

php artisan migrate:reset

CREATE NEW MIGRATION FILE

Create file migration dengan nama create_tickets_table (atau nama lain pun boleh).

php artisan make:migration create_tickets_table

File migration akan dhasilkan dan ditempatkan dalam direktori database/migrations.

File migration akan mempunyai timestamp diawal nama file seperti berikut

2015_06_15_150120_create_tickets_table.php


use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTicketsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

Bila anda buka file berkenaan ada 2 method penting:

  • Method Up: Utk add table, column kepada database
  • Method Down: Untuk reverse apa up buat

CREATE MIGRATION dengan opsyen ‘–CREATE’

Dengan menambah ‘–create’ diakhir command create migration, Laravel secara otomatis akan generate code tickect table untuk anda.

Cuba delete file migration create ticket table yang terdahulu

2015_06_15_150120_create_tickets_table.php

Kemudian cuba run command berikut

php artisan make:migration create_tickets_table --create=tickets

public function up()
{
Schema::create('tickets', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}

Jika anda lihat method Up mempunyai

$table->increments(‘id’);

merupakan id column dan merupakan primary key pada table berkenaan

$table->timestamps();

merupakan method special dalam Laravel yang menghasilkan kolum created_at dan update_at. Laravel menggunakan kolum ini untuk mengetahui perubahan table berkenaan.

refer disini untuk maklumat penuh migration http://laravel.com/docs/master/migrations

CREATE TABLE SEBENAR

Ubahsuai generated code berkenaan



public function up()
{
Schema::create('tickets', function (Blueprint $table) {
$table->increments('id');
$table->string('title', 255);
$table->text('content');
$table->string('slug')->nullable();
$table->tinyInteger('status')->default(1);
$table->integer('user_id');
$table->timestamps();
});
}

Selepas berpuas hati run command berkenaan untuk create table dan kolum

php artisan migrate

Sepatutnya sekarang table database telah dicipta. Boleh semah pada phpmyadmin.

Jika ada error semasa migrate, sila semak user permission dan juga config file database dan file .ENV.