This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
Overview
Download & View Belajar Framework Laravel as PDF for free.
Berkenalan dengan Laravel by SleepingKomodo · January 28, 2014 Alasan menggunakan laravel Bagi teman-teman yang sudah tidak asing lagi dengan PHP pasti sudah tahu dengan yang namanya PHP Framework. Nah, kali ini saya akan membahas mengenai Laravel, salah satu framework yang lumayan baru. Mungkin di antara teman-teman ada yang berpikir, kenapa sih harus ada framework baru? kenapa gak pake yang sudah ada aja semisal CodeIgniter atau Yii?, kenapa harus Re-invent The Wheel? Berikut beberapa alasannya menurut Taylor Otwell (Core Developer Laravel) : 1. Expressif. Laravel adalah sebuah framework PHP yang expressif, artinya ketika melihat suatu syntax Laravel, seorang programmer “diharapkan” akan langsung tahu kegunaan dari syntax tersebut meskipun belum pernah mempelajarinya apalagi menggunakannya. 2. Simple. Salah satu yang membuat Laravel begitu simple adalah adanya Eloquent ORM. Misalkan, kita ingin mengambil semua data yang ada pada tabel users. Maka yang kita perlukan, hanya membuat sebuah class model bernama User : Kemudian kita tinggal memasukan semua data dari tabel users tersebut dengan cara sebagai berikut : $all_user = User::all();
Dengan begitu, semua data dari tabel users, akan dengan mudah diakses dengan melakukan looping terhadap variabel $all_user. Saya akan bahas dengan lebih jelas lain kali. 3. Accesible. Bagi teman-teman yang sudah terbiasa dengan PHP Framework, saya yakin sudah tidak asing lagi dengan yang namanya CodeIgniter. Ya CodeIgniter merupakan salah satu PHP Framework yang paling populer, meskipun sebenarnya ada suatu framework yang bisa dibilang lebih superior jika dibandingkan dengan CodeIgniter. Misalnya, saja Kohana. Kohana bisa dibilang memiliki fitur yang lebih bagus jika dibanding CodeIgniter. Namun demikian, CodeIgniter memiliki dokumentasi yang sangat lengkap sehingga framework ini menjadi lebih mudah digunakan. Nah, begitu pula dengan Laravel, Laravel-pun dibuat dengan dokumentasi yang selengkap mungkin. Core Developer dari laravel sendiri ber-komitmen, untuk selalu menyertakan dokumentasi yang lengkap setiap kali melakukan rilis versi terbaru-nya. Cara install laravel Bagi yang belum tahu cara meng-install Laravel pada server lokal, berikut saya akan jelaskan langkahlangkahnya: 1. Pertama-tama, silahkan instal composer pada komputer teman-teman. Composer bisa anda download di http://getcomposer.org. 2. Selanjutnya, teman-teman bisa langsung download Laravel melalui repository-nya di sini.
Download laravel 3. Setelah itu, extract file laravel-master.zip yang telah di-download dan letakan pada root direktori. Bagi yang menggunakan xampp dan windows 8, maka root direktori yang dimaksud adalah C://xampp/htdocs.
Laravel pada folder xampp 4. Ubah nama direktori tersebut sesuai selera anda (optional). Dalam contoh kali ini saya akan ubah laravel-master menjadi lrv supaya lebih pendek. 5. Setelah itu, silahkan akses http://localhost/lrv/public. Pasti error kan?? :D. Jangan panik, mari ikuti langkah selanjutnya. 6. Buka command-prompt. Kemudian masuk ke dalam folder C://xampp/htdocs/lrv dengan cara mengetikan syntax berikut: cd c://xampp/htdocs/lrv
7. Lalu ketik composer install, kemudian tekan enter dan tunggu beberapa saat, composer akan men-download dependency yang dibutuhkan. 8. Setelah proses selesai silahkan refresh kembali browser anda. Maka akan akan muncul icon Laravel, sebagai tanda bahwa Laravel telah berhasil di-install.
Tampilan pertama laravel Cara membuat virtualhost dengan menggunakan xampp. Sebelumnya, apabila kita ingin membuka halaman utama dari instalasi Laravel yang telah kita buat, maka kita harus mengetikan url seperti berikut pada web browser : http://localhost/lrv/public . Nah, kali ini kita akan mengubahnya menjadi lebih pendek menjadi sebagai berikut: http://lrv.dev . Berikut langkah-langkahnya: • Pertama-tama buka direktori C:\Windows\System32\Drivers\etc. Pada direktori tersebut terdapat sebuah file bernama “hosts”. Buka file tersebut dan tambahkan text sebagai berikut di bagian paling bawah: 127.0.0.1
lrv.dev
• Selanjutnya, buka direktori C:\xampp\apache\conf\extra. Kemudian buka file “httpdvhosts.conf” yang ada pada direktori tersebut dan tambahkan text sebagai berikut pada bagian paling bawah: DocumentRoot "C:/xampp/htdocs/lrv/public" ServerName lrv.dev ServerAlias www.lrv.dev
• Restart Apache melalui Xampp Control Panel, kemudian buka http://lrv.dev melalui browser teman-teman. • Virtual Host telah berhasil dibuat.
Membuat ‘Hello World’ di Laravel by SleepingKomodo · January 28, 2014 Hal pertama yang biasa dipelajari ketika seseorang mempelajari sebuah bahasa pemrograman maupun sebuah framework adalah dengan membuat aplikasi ‘hello world’. Ada beberapa cara menampilkan ‘hello world’ di laravel, yaitu melalui route, controller maupun view. Sebelumnya, pastikan temanteman sudah melakukan instalasi Laravel seperti yang sudah dijelaskan pada posting sebelumnya. • Melalui Route. Untuk menampilkan text ‘Hello World’ melalui route pertama-tama buka file route.php. Kemudian, tambahkan route baru sebagai berikut: Route::get('hello', function() { return "Hello World"; });
Kemudian, melalui browser ketikan URL: http://lrv.dev/hello dan tekan enter. Maka, tulisan ‘Hello World’ akan tampil di browser teman-teman. • Melalui Controller. Untuk menampilkan tulisan ‘Hello World’ melalui controller, pertama-tama buat sebuah route baru pada file route.php seperti berikut: Route::get('hello_controller', HelloController@index);
kemudian, buat file baru pada direktori controller, misalnya dengan nama ‘HelloController’. Kemudian buat class controller didalam file tersebut seperti berikut ini:
Kemudian, melalui web browser buka URL yang mengarah ke route tersebut, yaitu http://lrv.dev/hello_controller . Maka tulisan ‘Hello World from Controller’ akan tampil di browser.
• Melalui View Untuk menampilkan tulisan ‘Hello World from View’ melalui view ada dua cara. Yaitu, melalui view yang dipanggil melalui route dan view yang dipanggil melalui controller. Pada tulisan kali ini saya hanya akan membahas view yang dipanggil melalui route. Pertama-tama, tambahkan sebuah file baru pada folder view, misalnya nama file-nya adalah helloView.php. Kemudian buka file tersebut dengan notepad dan tambahkan tulisan ‘Hello World from View’. Kemudian simpan. Setelah itu tambahkan route baru sebagai berikut: Route::get('hello_view', function() { return View::make('helloView'); });
Setelah itu ketika URL yang mengarah ke route tersebut melalui browser. Yaitu sebagai berikut : http://lrv.dev/hello_view . Dengan begitu, tulisan ‘Hello World from View’ akan tampil pada browser teman-teman.
Cara menggunakan “migration” pada Laravel by SleepingKomodo · January 28, 2014 Pada tulisan kali ini, saya akan menjelaskan tentang migration and seeding pada Laravel. Apa itu migration? Apa itu seeding? migration atau migrasi adalah suatu cara membuat, memodifikasi dan menghapus suatu tabel dan relasi antar tabel melalui kode program. Ups, ada yang bingung dengan kata-kata saya? jangan khawatir, anda akan paham setelah mengikuti langkah-langkah berikut: • Pertama-tama buat sebuah database baru dengan nama yang anda inginkan. Pada contoh kali ini, saya akan membuat database bernama lrv disesuaikan dengan nama aplikasi yang telah dibuat pada artikel sebelumnya. • Selanjutnya, atur koneksi database. Pengaturan dapat dilakukan pada file app/config/database.php. Pada file tersebut, anda bisa menentukan nama database, username dan password. • Kemudian buka command-line dan jalankan perintah php artisan migrate:make create_users_table. Dengan begitu, sebuah file baru akan ter-generate pada direktori /app/database/migrations. Beginilah kira-kira isi dari file tersebut:
?>
• Pada method up, tambahkan definisi tabel sebagai berikut: Schema::create('users', function($table) {
• Kemudian, pada method down, tambahkan fungsi untuk melakukan reverse apabila terjadi rollback pada database. public function down() { Schema::drop('users'); }
• Setelah itu, dengan menggunakan command prompt, masuklah ke dalam direktori project anda. Lalu jalankan perintah php artisan migrate dan tunggu beberapa saat hingga proses selesai. Maka, pada database yang telah anda buat akan muncul sebuah tabel baru bernama users beserta kolom-kolom yang sudah anda definisikan sebelumnya. • Apabila anda ingin melakukan rollback, anda bisa menjalankan perintah php artisan migrate:rollback.
Sekarang anda telah berhasil menggunakan migration untuk membuat sebuah tabel.
Cara melakukan seeding pada Laravel by SleepingKomodo · January 28, 2014 Pada artikel sebelumnya, kita telah membahas tentang cara menggunakan migration pada Laravel. Kali ini saya akan menjelaskan cara melakukan seeding. Apa itu seeding? seeding adalah suatu cara memasukan data pada database melalui kode program, kelebihan dari seeding jika dibandingkan dengan memasukan data secara manual adalah lebih flexibel. Untuk memasukan data pada database lain, anda tinggal copy seed-nya saja, kemudian dieksekusi. Kali ini, kita akan melakukan seeding terhadap database yang telah kita buat sebelumnya. Langkahlangkah-nya yaitu sebagai berikut: • Pertama-tama, pastikan di dalam direktori app/models terdapat sebuah model bernama User. • Kemudian, buka file app/database/seed/DatabaseSeeder.php. Ubah isi dari file tersebut menjadi seperti di bawah ini: call('UserTableSeeder'); } } class UserTableSeeder extends Seeder { public function run(){ User::create(array( 'email' => '[email protected]', 'name' => 'Taw ming seu', )); } } ?>
• Kemudian, melalui command-line, jalankan perintah php artisan db:seed. Maka, sebuah record baru akan masuk pada tabel yang anda buat sebelumnya melalui migrasi. Selain
menggunakan perintah tersebut, anda juga bisa menggunakan perintah php artisan migrate --seed atau php artisan migrate:refresh -seed untuk melakukan seeding secara bersamaan dengan migrasi.
Membuat CRUD Sederhana pada Laravel : part 1 by SleepingKomodo · January 28, 2014 Pada tulisan sebelumnya saya telah membahas beberapa hal sebagai berikut: • • • •
Laravel : A Framework for web Artisans Membuat Hello World di Laravel. Cara menggunakan “migration” pada Laravel Cara melakukan seeding pada Laravel
Setelah anda membaca tentang apa itu Laravel, cara membuat ‘Hello World’, migration dan seeding, Kali ini, kita akan membahas mengenai cara membuat aplikasi CRUD sederhana dengan menggunakan Laravel. Artikel kali ini dibuat sesederhana yang saya bisa, sehingga mudah dipelajari oleh pemula sekalipun. Twitter Bootstrap Untuk membuat user interface, kita akan menggunakan bantuan Twitter Bootstrap. Untuk itu, silahkan unduh terlebih dahulu disini. Kemudian extract hasil unduhan anda. Setelah di-extract akan menemukan tiga folder didalamnya yaitu folder css, fonts dan js. Copy ketiga folder tersebut ke dalam direktori `public`-nya Laravel.
Bootstrap di dalam direktori publik laravel Setelah Twitter Bootstrap anda pindahkan ke direktori public, berarti sudah siap untuk digunakan pada
aplikasi Laravel yang akan kita buat. Oleh karena itu, marilah kita lupakan sejenak mengenai Twitter Bootstrap ini dan memulai langkah selanjutnya. Database Tabel Sekarang, marilah kita membuat sebuah tabel baru untuk menampung data yang akan kita gunakan dalam tutorial kali ini. Misalnya, tabel tersebut akan menampung data-data buku yang akan dijual. Dengan menggunakan command-line, jalankan perintah php artisan migrate:make create_books_table. Maka, secara otomatis akan tercipta sebuah file baru pada direktori app/database/migrations. Buat definisi tabel sebagai berikut pada file migrasi tersebut:
{
Schema::create('books', function($table){ $table->increments('id'); $table->string('title')->unique(); $table->string('author'); $table->string('description'); $table->string('price'); $table->timestamps(); }); } 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`, anda bisa melihatnya melalui phpmyadmin. CRUD CRUD merupakan singkatan dari Create, Read, Update dan Delete. Untuk itu mari kita bahas satu persatu mulai dari Create (memasukan data ke dalam database). Create Untuk memasukan data ke dalam database kita akan menggunakan sebuah form. Pertama-tama, buat sebuah file baru pada direktori app/views/ dengan nama layout.blade.php. Kemudian, pada file tersebut, buat layout HTML sebagai berikut:
Perhatikan bahwa Laravel menggunakan Blade sebagai templating engine. Apabila anda masih belum mengerti tentang Blade, tidak masalah. Blade adalah sesuatu yang mudah, anda akan mengerti setelah menyelesaikan tutorial ini. Selanjutnya, masih pada folder 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 anda simpan diantara @section('content') dan @stop. Selanjutnya, tambahkan definisi form pada file tersebut: @extends('layout') @section('content')
Lalu, buat sebuah route pada file app/routes.php : Route::get('newbook', function() { return View::make('newbook'); });
Akses route tersebut melalui browser, maka akan tampil form seperti berikut ini:
Insert form Memasukan 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:
?>
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. Ok, 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: title $book->author $book->description $book->price
Bagian Terakhir Ok, 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. Anda sekarang bisa mencobanya dengan memasukan data pada form kemudian tekan tombol submit. Lalu, cek di database apakah data yang diinputkan sudah masuk. Konklusi Diatas kita telah membahas mengenai membuat Create menggunakan Laravel. Yaitu dengan cara membuat Model, Kemudian membuat View yang bisa mengirim data melalui form, data pada form tersebut kemudian dikirim ke controller untuk disimpan ke dalam database dengan menggunakan Class Model yang telah dibuat. Selanjutnya, pada Part 2 kita akan membahas mengenai cara menampilkan data (Read).
Let’s Go
Membuat CRUD Sederhana pada Laravel : Part 2 by SleepingKomodo · January 29, 2014 Sebelumnya kita telah membahas cara memasukan data ke dalam database dengan menggunakan Laravel (Create). Kali ini kita akan membahas tentang cara menampilkan data dari database. Ada tiga tahapan yang akan dilakukan yaitu: • Membuat route. • Mengirim data ke view. • Membuat looping. Pertama-tama marilah kita membuat sebuah route baru sebagai berikut: Route::get('booklist', function(){ });
Setelah itu, kita akan mengambil semua data dari tabel books yang telah kita buat sebelumnya. Ingat, untuk mengakses tabel books kita akan menggunakan Model bernama Book. Untuk melakukannya tambahkan Book::all() pada route yang telah kita buat: Route::get('booklist', function(){ $books = Book::all(); });
Setelah itu, kita akan memanggil sebuah view sekaligus mengirim variable $books ke view tersebut. Route::get('booklist', function(){ $books = Book::all(); return View::make('listbook')->with('booksdata', $books); });
Jika, anda mengakses route tersebut, bisa dipastikan sebuah pesan error akan muncul. Itu karena view bernama listbook masih belum kita buat. Oleh karena itu, mari kita buat view tersebut. Buat sebuah
file baru bernama listbook.blade.php Sebagai berikut: @extends('layout') @section('content') @stop
Pada route, kita telah mengirimkan sebuah variable bernama booksdata yang bisa diakses melalui view. Variable tersebut bersisi semua data dari tabel books yang bisa kita tampilkan dengan bantuan looping : @extends('layout') @section('content') <section class="container">
Title
Author
Description
Price
@foreach($booksdata as $book)
{{ $book->title }}
{{ $book->author }}
{{ $book->description }}
{{ $book->price }}
@endforeach
@stop
Jika anda perhatikan pada code diatas, kita menggunakan {{ $book->title }} untuk judul buku, {{ $book->author }} untuk pengarang dsb. Syntax yang digunakan yaitu blade, dimana {{ $book->title }} bisa disamakan dengan title; ?> . Sekarang, anda bisa buka route ‘booklist’ melalui browser, maka semua data yang berada pada table ‘books’ akan ditampilkan dalam bentuk table. Cara akses route tersebut misal: http://lrv.dev/booklist
Atau jika anda menggunakan domain ‘localhost’ : http://localhost/booklist
Kita telah membahas mengenai Create dan Read. Pada bagian selanjutnya, kita akan membahas mengenai Update. Bersambung
Membuat CRUD sederhana pada Laravel : Part 3 by SleepingKomodo · February 10, 2014 Pada Tulisan sebelumnya kita telah membahas tentang Create dan Read. Sekarang, mari kita melangkah ke tahap selanjutnya, yaitu Update. Pertama-tama, kita akan menampilkan link edit pada tabel yang telah kita buat sebelumnya ketika menampilkan data. Ubah file listbook.blade.php menjadi sebagai berikut: @extends('layout') @section('content') <section class="container">
Pada kode diatas, kita menambahkan link_to_action yang merupakan helper untuk membuat HTML link. Dimana, link tersebut akan mengarah ke method edit pada controller bernama BookController. Jika anda jalankan di browser (dengan membuka route booklist), maka akan muncul error sebagai berikut: ErrorException
Route [BookController@edit] not defined. (View: /var/www/laravel/app/views/listbook.blade.php)
Error tersebut muncul karena kita belum membuat route yang mengarah ke method tersebut, disamping method itu sendiri belum kita buat. Untuk itu, tambahkan route sebagai berikut pada file routes.php : Route::get('book/edit/{id}', 'BookController@edit');
Kemudian, tambahkan action ”edit” pada BookController: public function edit($id) { # code... }
Jika, anda klik pada salah satu link yang ditampilkan pada tabel, maka akan muncul halaman kosong pada browser. Untuk mengubah halaman kosong tersebut menjadi halaman edit, ubah fungsi edit yang barusan kita tambahkan menjadi sebagai berikut: public function edit($id) { $book = Book::find($id); return View::make('editbook')->with('book', $book); }
Jika, anda jalankan lagi maka kali ini bukan halaman kosong yang anda dapatkan, tetapi anda akan melihat error sebagai berikut: InvalidArgumentException View [editbook] not found.
Ini dikarenakan kita belum membuat view bernama editbook. Untuk itu, pada folder app/views buatlah file baru dengan nama editbook.blade.php : @extends('layout') @section('content')
Reload halaman yang menampilkan error tersebut dan anda akan melihat form edit beserta nilai dari masing-masing field. Update Untuk melakukan update, tambahkan fungsi ‘update’ pada BookController: public function update() { $id = Input::get('id'); $book = Book::find($id); $book->title $book->author $book->description $book->price }
Dan, jangan lupa untuk menambahkan route baru sebagai berikut: Route::post('book/update', 'BookController@update');
Setelah itu, pada file editbook.blade.php, ubahlah {{ Form::open()) }}
menjadi {{ Form::open(array('action' => 'BookController@update')) }}
Sekarang, cobalah anda ubah judul dari buku tersebut, lalu klik tombol update. Maka, data judul buku tersebut akan berubah pula di database.
Membuat CRUD Sederhana pada Laravel : Part 4 by SleepingKomodo · February 11, 2014 Pada kesempatan kali ini kita akan membuat fungsi delete .Fungsi delete digunakan untuk menghapus data yang telah kita masukan ke dalam database. Pertama-tama, tambahkan link ‘delete’ di sebelah link edit dengan cara mengubah file listbook.blade.php sebagai berikut: @extends('layout') @section('content') <section class="container">
Perhatikan, pada kode diatas kita menambahkan {{ link_to_action('BookController@delete', 'delete', array($book>id))}} yang digunakan untuk menampilkan link ‘delete’. Apabila anda jalankan di browser dengan cara mengakses route ‘booklist’, maka akan muncul error sebagai berikut: ErrorException Route [BookController@delete] not defined. (View: /var/www/laravel/app/views/listbook.blade.php)
Hal, ini disebabkan kita belum menambahkan route dan action yang diperlukan. Oleh karena itu, tambahkan route baru sebagai berikut: Route::get('book/delete/{id}', 'BookController@delete');
Jika, anda jalankan lagi pada browser maka tampilan akan berjalan normal dan sudah terdapat link delete didalam tabel. Namun, apabila link tersebut anda klik, tetap akan terjadi error, karena method ’delete’ masih belum dibuat, untuk itu pada BookController, tambahkan fungsi delete sebagai berikut: public function delete($id) { # code... }
Execute Delete Sekarang, jika anda klik ‘delete’ maka tidak akan muncul lagi pesan error. Namun, data tersebut masih belum terhapus dari dalam database karena kita belum menambahkan apa-apa pada method delete. Untuk itu, ubah fungsi delete menjadi sebagai berikut: public function delete($id) { $book = Book::find($id); $book->delete(); return Redirect::to('booklist'); }
Sekarang, jika anda klik link delete maka data buku yang bersangkutan akan dihapus. Perhatikan bahwa kode return Redirect::to('booklist'); digunakan untuk mengembalikan (redirect) anda ke halaman dengan route ‘booklist’. Selesai. Untuk mengunduh source code dari tutorial ini, silahkan klik disini.
Membuat autentikasi pengguna dengan menggunakan Laravel by SleepingKomodo · February 22, 2014 Autentikasi merupakan hal yang sangat penting dalam sebuah website. Dengan menggunakan autentikasi kita bisa mencegah orang yang tidak berkepentingan untuk mengakses situs yang kita buat. Saya rasa anda sudah paham tentang apa itu autentikasi, jadi saya pikir cukup sudah untuk penjelasannya. Mari kita lanjutkan ke cara membuat autentikasi menggunakan Laravel. Sebelumnya, saya asumsikan anda telah melakukan instalasi Laravel pada localhost dan melakukan setting database. Pertama-tama yang harus kita buat adalah tabel user. Untuk membuat tabel user, buat migrasi dengan menjalankan perintah sebagai berikut: php artisan migrate:make create_user_table
Buka folder app/migration, anda akan melihat sebuah file berisi class yang bernama ‘CreateUserTable’. Pada class tersebut terdapat dua method bernama ‘up’ dan ‘down’. Method ‘up’ digunakan untuk membuat tabel, sedangkan method ‘down’ digunakan untuk menghapus tabel. Tambahkan definisi tabel sebagai berikut pada method ‘up’: Schema::create('users', function($table) { $table->increments('id'); $table->string('firstname', 20); $table->string('lastname', 20); $table->string('email', 100)->unique(); $table->string('password', 64); $table->timestamps(); });
Kemudian pada method ‘down’ tambahkan perintah sebagai berikut: Schema::drop('users');
Selanjutnya, pada command line jalankan perintah: php artisan migrate
Dengan begitu, sebuah tabel bernama ‘users’ akan dibuat pada database, lengkap beserta seluruh fieldfield yang dibutuhkan. Untuk membuat sistem autentikasi, diperlukan sebuah model, controller dan view. Model yang digunakan adalah model bernama ‘User’ yang biasanya sudah ada secara default pada instalasi Laravel. Kemudian untuk controller kita akan membuat sebuah controller baru bernama ‘UserController’, untuk membuat ‘UserController’, jalankan perintah sebagai berikut menggunakan command line: php artisan controller:make UserController
Maka, sebuah file baru bernama ‘UserController.php’ akan tercipta pada folder app/controller. Membuat Halaman Registrasi Setelah controller kita buat, sekarang kita akan menampilkan sebuah halaman registrasi. Pertama-tama, kita akan mengubah fungsi ‘create’ pada ‘UserController’ menjadi fungsi ‘register’: public function register() { return View::make('register'); }
Pada fungsi register diatas, kita akan diarahkan pada sebuah view bernama ‘register’. Namun, view tersebut masih belum kita buat. Untuk itu pada folder app/views tambahkan sebuah file baru bernama ‘register.blade.php’: @extends('layout') @section('content')
Setelah itu, buatlah route baru pada file routes.php seperti berikut ini: Route::get('register', 'UserController@register'); Route::post('store', 'UserController@store');
Setelah route dibuat, sekarang anda bisa membuka halaman register yang barusan anda buat melalui browser dengan cara mengakses route ‘register’.Misal: http:/localhost/laravel/register
Registrasikan Pengguna Setelah halaman registrasi kita buat, kita akan memasukan data dari form yang barusan kita buat ke dalam database. Pada form tersebut terdapat kode sebagai berikut: {{Form::open(array('action' => 'UserController@store')) }}
Itu berarti, ketika disubmit, data dari form tersebut akan di-handle Oleh method ‘store’ pada ‘UserController’. Untuk itu silahkan buka ‘UserController’ kemudian tambahkan perintah sebagai berikut ke dalam method ‘store’: $user = new User(); $user->firstname $user->lastname $user->email $user->password
Sekarang, apabila anda isi form tersebut kemudian tekan tombol ‘Registerin Dong!’ (seperti submit), maka data yang anda masukan akan tersimpan di database. Membuat Fitur Login Untuk membuat halaman Login, pertama-tama buatlah dua buah fungsi baru yaitu ‘login’ dan
‘authenticate’: public function login(){ } public function authenticate(){ }
Selain itu, buatlah dua buah route baru pada file routes.php sebagai berikut: Route::get('login', 'UserController@login'); Route::post('authenticate', 'UserController@authenticate');
Halaman Login Sekarang, kita akan membuat tampilan halaman login. Pada method ‘login’ tambahkan baris perintah sebagai berikut: return View::make('login');
Kemudian pada direktori app/views tambahkan sebuah view baru dengan nama file login.blade.php: @extends('layout') @section('content')
Autentikasi Ketika tombol login di-klik, form akan diarahkan ke method ‘authenticate’ pada UserController. Pada method inilah autentikasi dilakukan, untuk itu tambahkan baris perintah sebagai berikut pada method authenticate: if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password'))))
Sekarang, jika anda tekan tombol ‘login’ dan autentikasi berhasil maka akan tampil tulisan “login berhasil”. Namun, jika autentikasi gagal, maka sebuah pesan kesalahan akan ditampilkan pada halaman login.
Membuat Halaman Dashboard Sebelumnya, apabila kita sudah berhasil login kita hanya akan melihat tulisan ‘login berhasil’. Nah, kali ini kita akan membuat supaya pengguna diarahkan ke halaman dashboard apabila login berhasil. Buat sebuah controller baru bernama ‘DashboardController’:
Setelah itu, buatlah sebuah route baru pada routes.php sebagai berikut:
Kemudian, jangan lupa untuk membuat sebuah view baru bernama ‘dashboard.blade.php’. Setelah itu, ubah autentikasi yang ada pada method authenticate menjadi sebagai berikut: function authenticate(){ if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))) { return Redirect::to('dashboard'); } return Redirect::to('login')->with('pesan_error', 'Login gagal, email atau password salah!'); }
Sampai disini, apabila anda mencoba login kembali maka akan diarahkan ke halaman dashboard. Tentu halaman dashboard yang dimaksud adalah halaman kosong, mengingat kita baru membuat viewnya saja, tanpa ada isinya. Membuat fungsi logout Sekarang, saatnya kita membuat fungsi logout. Untuk itu, kita akan membuat view ‘dashboard’ yang telah kita buat dari halaman kosong menjadi sebagai berikut: @extends('layout') @section('content')
Dashboard
@stop
Selanjutnya, perhatikan pada halaman dashboard diatas terdapat kode sebagai berikut:
Silahkan anda ubah kode diatas sesuai dengan kebutuhan anda. Misalnya, mengubah nama class dan lain-lain. Setelah itu, buka file app/config/view.php, lalu ubah key pagination menjadi sebagai berikut: 'pagination' => 'structure/pagination'
Dengan cara seperti itu, ketika anda menuliskan $products->links() , maka yang ditampilkan bukan lagi pagination bawaan dari laravel, tetapi pagination yang barusan anda buat. Selamat mencoba!
Bekerja dengan routing pada Laravel by SleepingKomodo · April 16, 2014 Router merupakan bagian yang sangat penting ketika berurusan dengan aplikasi terutama yang berbasis web. Router berfungsi menangani request aplikasi kemudian mengarahkan aplikasi untuk memanggil halaman/resouce tertentu. Misalnya, jika anda memanggil URL : http://localhost/products kemungkinan besar anda ingin mengarahkan aplikasi ke sebuah controller bernama ProductController.php kan? Nah, pada postingan kali ini saya akan mengajak anda mendalami sedikit lebih spesifik mengenai router pada Laravel, serta bagaimana cara mengimplementasikannya. Menurut saya, sistem router pada Laravel merupakan sistem router yang terbaik yang pernah saya gunakan selama mengenal framework PHP dan sangat memudahkan sekali bahkan ketika membuat routing yang cukup kompleks. Mengenal routes pada Laravel Routes pada Laravel terdapat pada file app/routes.php. Semua routes diletakkan pada file tersebut agar ketika anda ingin memodifikasinya, anda tahu persis dimana routes tersebut berada. Selain dengan membuka file tersebut, anda juga bisa melihat routes apa saja yang terdapat pada aplikasi anda dengan menggunakan perintah pada command line: php artisan routes
Dengan perintah seperti diatas, seluruh routes yang ada pada aplikasi akan ditampilkan pada command line. Routes dasar Secara default, ketika anda instal Laravel sudah terdapat routes seperti berikut pada routes.php : Route::get('/', function() { return View::make('hello'); });
Seperti yang anda lihat, terdapat ‘/’ (slash) yang menandakan route tersebut menangani halaman utama dari aplikasi anda (halaman root). Selain itu, route diatas mengembalikan sebuah view dengan nama file app/views/hello.php. Method get pada contoh diatas adalah suatu method yang digunakan untuk menampilkan resource (bisa berupa fungsi atau controller); Method get menerima dua parameter, sebuah path dan sebuah closure. Path tersebut adalah URL yang harus ditangani oleh method get tersebut. Sedangkan Closure adalah berupa anonymous function, anonymous function adalah sebuah fungsi yang tidak memiliki nama dan dapat dilewatkan kepada fungsi lain sebagai argument. Route menggunakan method post
Selain method get, pada Laravel juga terdapat method post untuk menangani route. Method post, biasanya digunakan untuk mengarahkan form ketika di submit. Perhatikan contoh berikut: Route::post('product/store', function() { return Product::create(Input::all()); });
Route menggunakan method any POST dan GET merupakan Http verbs. POST bisa ditangani dengan method post pada route, dan GET bisa ditangani dengan method get. Sekarang, bagaimana jika kita ingin membuat route yang bisa menangani keduanya? Jawabannya adalah menggunakan method any. Route::any('hello', function() { return 'Hello World'; });
Route menggunakan HTTPS Jika anda menginginkan supaya request ditangani melalui Https, anda bisa menggunakan array pada saat melewatkan closure pada argument. Perhatikan contoh berikut: Route::get('product', array('https', function() { return 'Route menggunakan HTTPS'; }));
Menggunakan parameter pada route Terkadang anda perlu melewatkan parameter pada URL, sebagai contoh untuk mengambil produk dengan id = 1, maka anda melewatkan parameter 1 pada URL ketika mengakses route product seperti ini : product/1. Untuk itu, anda perlu membuat route seperti berikut: Route::get('product/{id}', function($id) { return Product::find($id); });
Pada contoh diatas, parameter tersebut wajib diisi. Artinya, anda tidak bisa mengakses route product, tetapi harus dengan parameter product/1code>. Nah supaya parameter tersebut bersifat opsional dan anda bisa mengakses route product tanpa parameter, anda perlu membubuhkan tanda tanya setelah nama parameter serta menambahkan default value pada parameter tersebut. Contoh: Route::get('product/{id?}', function($id = NULL) { if($id) { return Product::find($id); } return Product::all(); });
Mengarahkan route ke controller Pada contoh diatas, route diarahkan kepada sebuah anonymous function yang ada pada method get, post atau any. Nah, untuk mengarahkan route ke controller lakukan dengan cara seperti berikut ini: Route::get('product/{id}', 'ProductController@showProfile');
Itulah sedikit mengenai cara menggunakan route pada Laravel. Untuk lebih lengkapnya, juga bisa melihatnya langsung pada dokumentasi Laravel 4. Semoga bermanfaat.