Di postingan sebelumnya kan udah dibahas nih gimana bikin hello world (klik) dan juga udah dijelasin apa itu migrasi (klik), sekarang kita bikin aplikasi sederhana yang ada CRUD nya yuk.
Untuk tutorial kali ini, saya mau bagi jadi 4 part yaa. Kenapa? karena kalau dijadikan satu nanti terlalu panjang jadi pada males bacanya kan kalian :p
Soooooo, here we goooooo
Twitter Bootstrap
Udah tau belom sih twitter bootstrap itu apa? Kalo belom gugling aja deh ya haha. Yang jelas kita perlu bootstrap ini untuk membantu kita dalam membuat user interface. Af first, download bootstrap here. Setelah itu extract bootstrap-nya dan kita bakalan dapet 3 folder. Nah sekarang pindahkan 3 folder itu ke dalam folder public.Done!
Migrate database
Oh iya, aplikasi yang akan kita buat adalah sebuah aplikasi sederhana penjualan buku. Jadi mari kita buat dahulu tabel yang akan menampung data buku yang akan dijual. Jalankan perintahphp artisan migrate:make create_books_table. Secara otomatis akan tercipta sebuah file baru pada direktori app/database/migrations. Buat definisi tabel sebagai berikut pada file migrasi tersebut:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBooksTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('books', function($table){
$table->increments('id');
$table->string('title')->unique();
$table->string('author');
$table->string('description');
$table->string('price');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('books');
}
}
Lalu jalankan perintah php artisan migrate melalui command-line. Maka secara otomatis akan tercipta sebuah tabel baru bernama `books`, bisa dilihat melalui phpmyadmin.CRUD
Create, read, update, delete. Disini kita bahas satu persatu aja ya biar lebih jelas hehe.Create
Nih yang pertama. Maksudnya create disini adalah memasukkan data ke dalam database. Untuk itu, kita akan menggunakan sebuah form. Buat file baru pada direktori
app/views/ dengan nama layout.blade.php. Kemudian, pada file tersebut, buat layout HTML sebagai berikut:Perlu diketahui, Laravel menggunakan blade sebagai template engine. Selanjutnya, masih pada folder
<!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8' /> <title>@maulidyta | CRUD</title> <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1' /> {{ HTML::style('css/bootstrap.min.css') }} </head>; <body> @yield('content') {{ HTML::script('js/jquery.min.js') }} {{ HTML::script('js/bootstrap.js') }} </body> </html>
app/views, buat sebuah file baru bernama newbook.blade.php:
@extends('layout')
@section('content')
Hello, Semua form akan ditempatkan disini!
@stop
File inilah yang nantinya akan digunakan untuk menampilkan form yang akan kita buat pada browser. Pada file tersebut anda tidak perlu menulis lagi tag `html`, `title` , `body` karena sudah di-extends dari file layout.blade.php dengan menggunakan @extends('layout'). Semua yang akan ditampilkan di browser bisa disimpan diantara @section('content') dan @stop. Selanjutnya, tambahkan definisi form pada file tersebut:
@extends('layout') @section('content') <div class='container'> <h3>Insert new book</h3> {{ Form::open()}} {{Form::label('title', 'Title') }} {{Form::text('title', '', array('class' => 'form-control'))}} {{Form::label('author', 'Author') }} {{Form::text('author', '', array('class' => 'form-control'))}} {{Form::label('description', 'Description') }} {{Form::textarea('description', '', array('class' => 'form-control'))}} {{Form::label('price', 'Price') }} {{Form::text('price', '', array('class' => 'form-control'))}} {{Form::submit('Submit', array('class' => 'btn btn-primary')) }} {{ Form::close() }} </div> @stop
Lalu, buat sebuah route pada file
app/routes.php :Akses route tersebut di browser, tampilannya kayak gini nih:
Route::get('newbook', function() { return View::make('newbook'); });
Memasukkan data ke database
Selanjutnya, mari kita buat Model dan Controller untuk memasukan data diinputkan ke dalam database. Buat sebuah file dengan nama
Book.php pada direktori app/models:
<?php class Book extends Eloquent { } ?>
Harus diperhatikan bahwa nama class perlu disesuaikan dengan nama tabel yang digunakan, karena pada contoh kali ini kita menggunakan tabel bernama
books, maka nama class yang dibuat haruslah Book. Seperti halnya pada Model User, karena nama tabelnya users. Sebenarnya, anda juga bisa menentukan nama Model sesuka hati. Namun, caranya tidak akan dibahas pada tulisan ini. Mungkin lain kali akan saya bahas yaa.Oke, setelah Model anda buat, selanjutnya mari kita buat controller. Pada direktori
app/controllers buatlah sebuah file baru dengan nama BookController.php :Setelah itu, buat fungsi untuk memasukan data buku baru ke dalam database:<?php class BookController extends BaseController { } ?>
<?php class BookController extends BaseController { public function store(){ $book = new Book; $book->title = Input::get('title');; $book->author = Input::get('author');; $book->description = Input::get('description');; $book->price = Input::get('price');; $book->save(); } } ?>
Last Touch!
Oke, setelah Model dan Controller dibuat, langkah selanjutnya yang harus dilakukan adalah membuat route baru yang mengarah kepada fungsi yang kita buat di dalam Controller. Buka routes.php, tambahkan route sebagai berikut:
Route::post('book/insert', 'BookController@store');
Kemudian pada file
app/views/newbook.blade.php ubah {{ Form::open() }} menjadi {{ Form::open(array('action' => 'BookController@store')) }}. Dimana ‘BookController@store’ disesuaikan dengan nama Controller dan Action yang kita tuju.Selesai. Sekarang kita bisa mencobanya dengan memasukan data pada form kemudian tekan tombol submit. Lalu, cek di database apakah data yang diinputkan sudah masuk atau belum.
Keep waiting for the next post yaa, coming soon :p



Tidak ada komentar:
Posting Komentar