Belajar Framework Laravel

  • Uploaded by: Dindin Nugraha
  • 0
  • 0
  • January 2021
  • PDF

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.

More details

  • Words: 5,670
  • Pages: 34
Loading documents preview...
Object Object10 1 2 3 4 5 6 7 8 9

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) {

$table->increments('id'); $table->string('email')->unique(); $table->string('name'); $table->timestamps(); });

• 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:

<meta charset='utf-8' /> CRUD App <meta name='viewport' content='width=device-width, initial-scale=1, maximumscale=1' /> {{ HTML::style('css/bootstrap.min.css') }} ; @yield('content') {{ HTML::script('js/jquery.min.js') }} {{ HTML::script('js/bootstrap.js') }}

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')

Insert new book

{{ 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() }}
@stop

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

= = = =

Input::get('title');; Input::get('author');; Input::get('description');; Input::get('price');;

$book->save(); } } ?>

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"> @foreach($booksdata as $book) @endforeach
Title Author Description Price
{{ $book->title }} {{ $book->author }} {{ $book->description }} {{ $book->price }}
@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"> @foreach($booksdata as $book) @endforeach
Title Author Description Price #
{{ $book->title }} {{ $book->author }} {{ $book->description }} {{ $book->price }} {{ link_to_action('BookController@edit', 'edit', array($book>id))}}
@stop

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')

Edit book

{{ Form::open() }} {{Form::hidden('id', $book->id)}} {{Form::label('title', 'Title') }} {{Form::text('title', $book->title , array('class' => 'form-control'))}} {{Form::label('author', 'Author') }} {{Form::text('author', $book->author , array('class' => 'form-control'))}} {{Form::label('description', 'Description') }}

{{Form::textarea('description', $book->description , array('class' => 'formcontrol'))}} {{Form::label('price', 'Price') }} {{Form::text('price', $book->price , array('class' => 'form-control'))}} {{Form::submit('Update', array('class' => 'btn btn-primary')) }} {{ Form::close() }}
@stop

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 }

= = = =

Input::get('title'); Input::get('author'); Input::get('description'); Input::get('price');

$book->save();

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"> @foreach($booksdata as $book) @endforeach
Title Author Description Price #
{{ $book->title }} {{ $book->author }} {{ $book->description }} {{ $book->price }} {{ link_to_action('BookController@edit', 'edit', array($book->id))}} | {{ link_to_action('BookController@delete', 'delete', array($book->id))}}
@stop

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')

Register

@if(Session::has('pesan'))
{{ Session::get('pesan') }}
@endif {{Form::open(array('action' => 'UserController@store')) }} {{Form::label('firstname', 'First Name') }} {{Form::text('firstname', '', array('class' => 'form-control'))}} {{Form::label('lastname', 'Last Name') }} {{Form::text('lastname', '', array('class' => 'form-control'))}} {{Form::label('email', 'Email') }} {{Form::text('email', '', array('class' => 'form-control'))}} {{Form::label('password', 'Password') }} {{Form::password('password', array('class' => 'form-control'))}}
{{Form::submit('Registerin Dong!', array('class' => 'btn btn-primary')) }} {{ Form::close() }}
@stop

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

= = = =

Input::get('firstname'); Input::get('lastname'); Input::get('email'); Hash::make(Input::get('password'));

$user->save(); return Redirect::to('register')->with('pesan', 'Registrasi berhasil!');

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')

Login


@if(Session::has('pesan_error'))
{{ Session::get('pesan_error') }}
@endif {{Form::open(array('action' => 'UserController@authenticate')) }} {{Form::label('email', 'Email') }} {{Form::text('email', '', array('class' => 'form-control'))}} {{Form::label('password', 'Password') }} {{Form::password('password', array('class' => 'form-control'))}} {{Form::submit('Login', array('class' => 'btn btn-primary')) }} {{Form::close() }}
@stop

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'))))

{

echo "login berhasil"; } else{ return Redirect::to('login')->with('pesan_error', 'Login gagal, email atau password salah!'); }

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:

Route::get('dashboard', 'DashboardController@index');

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:


  • Pada atribut href, kita bisa melihat bahwa kita akan diarahkan pada route ‘logout’ apabila link tersebut kita klik. Namun, route ‘logout’ masih belum kita buat, oleh itu tambahkan route ‘logout’ sebagai berikut pada file routes.php: Route::get('logout', 'UserController@logout');

    Kemudian, tambahkan sebuah method pada ‘UserController’ sebagai berikut: public function logout(){ Auth::logout(); return Redirect::to('login')->with('pesan', 'berhasil logout'); }

    Selanjutnya, untuk menampilkan pesan berhasil logout, tambahkan perintah sebagai berikut pada bagian atas form login: @if(Session::has('pesan')) {{ Session::get('pesan') }} @endif

    Kesimpulan Sejauh ini anda telah berhasil membuat halaman registrasi, login dan logout. Tentunya, masih ada

    beberapa kelemahan dalam aplikasi yang barusan kita buat. Misalnya, akan terjadi error apabila kita memasukan email yang sama saat registrasi. Kemudian, jika kita belum login dan mengakses http://localhost/dashboard seharusnya pengguna diarahkan ke halaman login. Dan masih ada beberapa hal lagi yang harus diperbaiki namun tidak akan saya bahas dalam tulisan ini berharap anda bisa mencobanya sendiri. Have a nice day!

    Menggunakan pagination pada Laravel by SleepingKomodo · April 16, 2014 Sepertinya hampir setiap aplikasi berbasis web yang memiliki fungsi untuk mengatur data memerlukan pagination ketika menampilkan data yang cukup banyak. Pagination adalah solusi yang cukup baik untuk mengatasi kelebihan informasi. Saya pikir hampir semua orang tahu cara menggunakan pagination. Namun, untuk membuat sistem pagination dari awal akan sangat memakan waktu dan juga membosankan. Ada banyak potongan program yang harus anda tulis hanya untuk menampilkan pagination sesuai dengan jumlah data dari database dan posisi anda melihat data saat ini, kemudian menampilkannya pada bagian bawah data. Untungnya, pagination merupakan salah satu dari sekian banyak fitur pada Laravel dimana kita bisa menggunakannya dengan lebih mudah tanpa harus membuat dari awal. Membuat pagination dari awal bisa menjadi mimpi buruk, sedangkan jika anda tidak menggunakan pagination tentu kasihan pengguna anda jika harus melihat terlalu banyak data dalam satu waktu. Apa itu Pagination Pagination adalah suatu cara menampilkan data yang banyak ke dalam beberapa halaman. Ketika awal mula membuat sebuah aplikasi web, anda mungkin tidak memerlukan pagination. Namun, seiring berjalannya waktu dan semakin banyak data yang harus ditampilkan, maka pagination akan menjadi sangat penting. Jika anda menampilkan banyak data sekaligus dalam satu waktu, maka hal itu akan memperlambat proses pengambilan data dari database dan menyebabkan aplikasi menjadi lambat. Dengan menggunakan pagination, hanya beberapa set data saja yang akan diambil dari database dan ditampilkan langsung pada aplikasi. Pada database, jumlah data dihitung dan dibagi-bagi menjadi beberapa halaman tergantung dari berapa banyak yang ingin anda tampilkan per halamannya. Kemudian jumlah halaman diperkirakan dan dijadikan nomor halaman pada bagian bawah tampilan data. Semoga anda mengerti (sudah mengerti sebelumnya) tentang apa itu pagination. Menggunakan method paginate pada Laravel Seperti yang sudah saya jelaskan, Laravel bisa mempermudah pembuatan pagination. Pada Eloquent maupun pada query builder-nya Laravel, terdapat method paginate yang bisa menentukan berapa jumlah data yang ingin ditampilkan, dimana semuanya sudah di-handle oleh Laravel. Misal, dengan menggunakan Eloquent anda bisa mengambil data dari database dengan menggunakan method paginate sebagai berikut: $users = User::paginate(60);

    atau jika menggunakan query builder: $users = User::paginate(50);

    Kemudian, pada bagian bawah dari data yang ditampilkan (di bawah foreach), anda bisa menambahkan link pagination dengan cara sebagai berikut: {{ $users->links(); }}

    Contoh kode lengkap yang bisa anda gunakan untuk membuat pagination adalah sebagai berikut: routes.php Route::get('/', function() { $products = Product::paginate(50); return View::make('tampilkan')->with('products', $products); });

    views/tampilkan.blade.php @foreach($products as $product) {{ $product->name }} {{ $product->price }} {{ $product->stock }} {{ Link::edit('product/edit/'.$product->id) }} | {{ Link::delete('product/delete/'.$product->id) }} @endforeach {{ $products->links() }}

    Mudah bukan? dengan menggunakan Laravel pembuatan pagination bisa semudah itu. Namun, mungkin ada kalanya anda perlu untuk mengubah tampilan pagination tersebut supaya sesuai dengan keinginan anda, misalnya supaya sesuai dengan CSS yang telah anda buat. Anda bisa melakukannya dengan cara membuat custom pagination caranya akan saya jelaskan pada bagian dibawah ini. Membuat Custom Pagination Untuk membuat custom pagination pertama-tama anda buat sebuah folder baru, pada app/views. Misal, folder tersebut anda beri nama structure. Anda boleh memberi nama lain jika anda mau. Setelah itu, pada folder tersebut buat sebuah file baru bernama pagination.blade.php. Contoh isi file tersebut adalah sebagai berikut: getLastPage() > 1)
    @endif ?>

    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.

  • Related Documents

    Belajar Framework Laravel
    January 2021 1
    Crud Laravel
    January 2021 2
    Tutorial Dasar Laravel
    January 2021 0
    Conceptual Framework
    January 2021 4

    More Documents from "LailaturRahmi"