You are on page 1of 34

Berkenalan dengan Laravel

by SleepingKomodo January 28, 2014


Alasan menggunakan laravel
Bagi teman-teman yang sudah tidak asing lagi dengan ! pasti sudah tahu dengan yang namanya
PHP Framework" #ah, kali ini saya akan membahas mengenai $ara%el, salah satu framework yang
lumayan baru. &ungkin di antara teman-teman ada yang berpikir, kenapa sih harus ada framework
baru' kenapa gak pake yang sudah ada a(a semisal )ode*gniter atau +ii', kenapa harus Re-invent The
Wheel? Berikut beberapa alasannya menurut ,aylor -t.ell /Core Developer Laravel0 1
1" Expressif. $ara%el adalah sebuah 2rame.ork ! yang expressif, artinya ketika melihat suatu
sntax $ara%el, seorang pro!rammer "diharapkan# akan langsung tahu kegunaan dari sntax
tersebut meskipun belum pernah mempela(arinya apalagi menggunakannya"
2" Simple. Salah satu yang membuat $ara%el begitu simple adalah adanya $lo%&ent 'R(.
&isalkan, kita ingin mengambil semua data yang ada pada tabel &sers. &aka yang kita
perlukan, hanya membuat sebuah 3lass model bernama 4ser 1
Kemudian kita tinggal memasukan semua data dari tabel &sers tersebut dengan 3ara sebagai
berikut 1
$all_user = User::all();
5engan begitu, semua data dari tabel &sers, akan dengan mudah diakses dengan melakukan
loopin! terhadap %ariabel )all*&ser. Saya akan bahas dengan lebih (elas lain kali"
6" Accesible. Bagi teman-teman yang sudah terbiasa dengan ! 7rame.ork, saya yakin sudah
tidak asing lagi dengan yang namanya )ode*gniter" +a )ode*gniter merupakan salah satu !
7rame.ork yang paling populer, meskipun sebenarnya ada suatu framework yang bisa dibilang
lebih superior (ika dibandingkan dengan )ode*gniter" &isalnya, sa(a Kohana" Kohana bisa
dibilang memiliki 2itur yang lebih bagus (ika dibanding )ode*gniter" #amun demikian,
)ode*gniter memiliki dokumentasi yang sangat lengkap sehingga framework ini men(adi lebih
mudah digunakan" #ah, begitu pula dengan $ara%el, $ara%el-pun dibuat dengan dokumentasi
yang selengkap mungkin" Core Developer dari lara%el sendiri ber-komitmen, untuk selalu
menyertakan dokumentasi yang lengkap setiap kali melakukan rilis %ersi terbaru-nya"
Cara install laravel
Bagi yang belum tahu 3ara meng-install $ara%el pada server lokal, berikut saya akan (elaskan langkah-
langkahnya1
1" ertama-tama, silahkan instal +omposer pada komputer teman-teman" )omposer bisa anda
do.nload di http188get3omposer"org"
2" Selan(utnya, teman-teman bisa langsung ,ownloa, $ara%el melalui repositor-nya di sini"
Object 1 Object 2 Object 3 Object 4 Object 5 Object 6 Object 7 Object 8 Object 9 Object 10
5o.nload lara%el
6" Setelah itu, extra+t file lara%el-master"9ip yang telah di-,ownloa, dan letakan pada root
direktori" Bagi yang menggunakan :ampp dan .indo.s 8, maka root direktori yang dimaksud
adalah C://xampp/htdocs.
$ara%el pada 2older :ampp
4" 4bah nama direktori tersebut sesuai selera anda /optional0" 5alam 3ontoh kali ini saya akan
ubah laravelmaster men(adi lrv supaya lebih pendek"
;" Setelah itu, silahkan akses http://localhost/lrv/public. asti error kan'' 15" Jangan panik, mari
ikuti langkah selan(utnya"
<" Buka +omman,-prompt. Kemudian masuk ke dalam 2older C://xampp/htdocs/lrv dengan 3ara
mengetikan sntax berikut1
cd c://xampp/htdocs/lrv
=" $alu ketik composer install, kemudian tekan enter dan tunggu beberapa saat, 3omposer
akan men-,ownloa, ,epen,en+ yang dibutuhkan"
8" Setelah proses selesai silahkan refresh kembali -rowser anda" &aka akan akan mun3ul i3on
$ara%el, sebagai tanda bah.a $ara%el telah berhasil di-install.
,ampilan pertama lara%el
Cara membuat virtualhost dengan menggunakan xampp.
Sebelumnya, apabila kita ingin membuka halaman utama dari instalasi $ara%el yang telah kita buat,
maka kita harus mengetikan url seperti berikut pada we- -rowser 1 http://localhost/lrv/public " #ah,
kali ini kita akan mengubahnya men(adi lebih pendek men(adi sebagai berikut1 http://lrv.dev . Berikut
langkah-langkahnya1
ertama-tama buka direktori C./Win,ows/0stem12/Drivers/et+. ada direktori tersebut terdapat
sebuah file bernama >hosts?" Buka file tersebut dan tambahkan te:t sebagai berikut di bagian
paling ba.ah1
127...1 lrv.dev
Selan(utnya, buka direktori C./xampp/apa+he/+onf/extra. Kemudian buka file "http,-
vhosts.+onf# yang ada pada direktori tersebut dan tambahkan te:t sebagai berikut pada bagian
paling ba.ah1
!"irtual#ost $:%&
'ocument(oot )*:/xampp/htdocs/lrv/pu+lic)
,erver-ame lrv.dev
,erver.lias ///.lrv.dev
!/"irtual#ost&
Restart @pa3he melalui Aampp )ontrol anel, kemudian buka http://lrv.dev melalui -rowser
teman-teman"
Birtual !ost telah berhasil dibuat"
!embuat "#ello $orld% di Laravel
by SleepingKomodo January 28, 2014
!al pertama yang biasa dipela(ari ketika seseorang mempela(ari sebuah bahasa pemrograman maupun
sebuah framework adalah dengan membuat aplikasi Chello .orldD" @da beberapa 3ara menampilkan
Chello .orldD di lara%el, yaitu melalui route, 3ontroller maupun %ie." Sebelumnya, pastikan teman-
teman sudah melakukan instalasi $ara%el seperti yang sudah di(elaskan pada posting sebelumnya"
!elalui &oute.
4ntuk menampilkan te:t C!ello EorldD melalui route pertama-tama buka 2ile ro&te.php. Kemudian,
tambahkan ro&te baru sebagai berikut1
(oute::0et(1hello12 3unction()
4
return )#ello 5orld);
6);
Kemudian, melalui bro.ser ketikan 4F$1 http://lrv.dev/hello dan tekan enter" &aka,
tulisan C!ello EorldD akan tampil di bro.ser teman-teman"
!elalui Controller.
4ntuk menampilkan tulisan C!ello EorldD melalui +ontroller, pertama-tama buat sebuah route baru
pada file ro&te.php seperti berikut1
(oute::0et(1hello_controller12 #ello*ontroller7index);
kemudian, buat file baru pada direktori +ontroller, misalnya dengan nama C!ello)ontrollerD" Kemudian
buat +lass +ontroller didalam file tersebut seperti berikut ini1
!8php
class #ello*ontroller extends 9ase*ontroller 4
pu+lic 3unction index()
4
return )#ello 5orld 3rom *ontroller);
6
6
8&
Kemudian, melalui we- -rowser buka 4F$ yang mengarah ke route tersebut, yaitu
http://lrv.dev/hello_controller " &aka tulisan C!ello Eorld 2rom )ontrollerD akan
tampil di bro.ser"
!elalui 'ie(
4ntuk menampilkan tulisan C!ello Eorld 2rom Bie.D melalui %ie. ada dua 3ara" +aitu, melalui %ie.
yang dipanggil melalui route dan %ie. yang dipanggil melalui 3ontroller" ada tulisan kali ini saya
hanya akan membahas %ie. yang dipanggil melalui route"
ertama-tama, tambahkan sebuah 2ile baru pada 2older view, misalnya nama file-nya
adalah hello3iew.php. Kemudian buka file tersebut dengan notepad dan tambahkan tulisan C!ello
Eorld 2rom Bie.D" Kemudian simpan"
Setelah itu tambahkan ro&te baru sebagai berikut1
(oute::0et(1hello_vie/12 3unction()
4
return "ie/::ma:e(1hello"ie/1);
6);
Setelah itu ketika 4F$ yang mengarah ke ro&te tersebut melalui -rowser. +aitu sebagai berikut 1
http://lrv.dev/hello_vie/ " 5engan begitu, tulisan C!ello Eorld 2rom Bie.D akan tampil
pada -rowser teman-teman"
Cara menggunakan )migration* pada Laravel
by SleepingKomodo January 28, 2014
ada tulisan kali ini, saya akan men(elaskan tentang mi!ration an, see,in! pada $ara%el" @pa
itu mi!ration? @pa itu see,in!? mi!ration atau migrasi adalah suatu 3ara membuat, memodi2ikasi dan
menghapus suatu tabel dan relasi antar tabel melalui kode program" 4ps, ada yang bingung dengan
kata-kata saya' (angan kha.atir, anda akan paham setelah mengikuti langkah-langkah berikut1
ertama-tama buat sebuah ,ata-ase baru dengan nama yang anda inginkan" ada 3ontoh kali
ini, saya akan membuat ,ata-ase bernama lrv disesuaikan dengan nama aplikasi yang telah
dibuat pada artikel sebelumnya"
Selan(utnya, atur koneksi database" engaturan dapat dilakukan pada file
app/con3i0/data+ase.php" ada file tersebut, anda bisa menentukan nama
,ata-ase, &sername dan passwor,.
Kemudian buka +omman,-line dan (alankan perintah php artisan mi0rate:ma:e
create_users_ta+le" 5engan begitu, sebuah file baru akan ter-!enerate pada direktori
/app/data+ase/mi0rations" Beginilah kira-kira isi dari file tersebut1
!8php use ;lluminate<'ata+ase<=i0rations<=i0ration;
class *reateUsers>a+le extends =i0ration 4
/$$
$ (un the mi0rations.
$
$ 7return void
$/
pu+lic 3unction up()
4
//
6
/$$
$ (everse the mi0rations.
$
$ 7return void
$/
pu+lic 3unction do/n()
4
//
6
6 8&
ada metho, up, tambahkan de2inisi tabel sebagai berikut1
,chema::create(1users12 3unction($ta+le)
4
$ta+le?&increments(1id1);
$ta+le?&strin0(1email1)?&uni@ue();
$ta+le?&strin0(1name1);
$ta+le?&timestamps();
6);
Kemudian, pada metho, do.n, tambahkan 2ungsi untuk melakukan reverse apabila
ter(adi roll-a+k pada database"
pu+lic 3unction do/n()
4
,chema::drop(1users1);
6
Setelah itu, dengan menggunakan +omman, prompt, masuklah ke dalam direktori pro(e3t anda"
$alu (alankan perintah php artisan mi0rate dan tunggu beberapa saat hingga proses
selesai" &aka, pada ,ata-ase yang telah anda buat akan mun3ul sebuah tabel baru bernama
users beserta kolom-kolom yang sudah anda de2inisikan sebelumnya"
@pabila anda ingin melakukan roll-a+k, anda bisa men(alankan perintah php artisan
mi0rate:roll+ac:"

Sekarang anda telah berhasil menggunakan mi!ration untuk membuat sebuah tabel"
Cara melakukan seeding pada Laravel
by SleepingKomodo January 28, 2014
ada artikel sebelumnya, kita telah membahas tentang 3ara menggunakan migration pada $ara%el" Kali
ini saya akan men(elaskan 3ara melakukan see,in!. @pa itu see,in!? seeding adalah suatu 3ara
memasukan data pada ,ata-ase melalui kode program, kelebihan dari see,in! (ika dibandingkan
dengan memasukan data se3ara manual adalah lebih flexi-el. 4ntuk memasukan data
pada ,ata-ase lain, anda tinggal +op see,-nya sa(a, kemudian dieksekusi"
Kali ini, kita akan melakukan see,in! terhadap ,ata-ase yang telah kita buat sebelumnya" $angkah-
langkah-nya yaitu sebagai berikut1
ertama-tama, pastikan di dalam direktori app/models terdapat sebuah model bernama 4ser"
Kemudian, buka 2ile app/data+ase/seed/'ata+ase,eeder.php" 4bah isi dari 2ile
tersebut men(adi seperti di ba.ah ini1
!8php
class 'ata+ase,eeder extends ,eeder 4
pu+lic 3unction run()
4
Alo@uent::un0uard();
$this?&call(1User>a+le,eeder1);
6
6
class User>a+le,eeder extends ,eeder
4
pu+lic 3unction run()4
User::create(arraB(
1email1 =& 1in3o7%ers.com12
1name1 =& 1>a/ min0 seu12
));
6
6
8&
Kemudian, melalui +omman,-line, (alankan perintah php artisan d+:seed" &aka,
sebuah re+or, baru akan masuk pada tabel yang anda buat sebelumnya melalui migrasi" Selain
menggunakan perintah tersebut, anda (uga bisa menggunakan perintah php artisan
mi0rate ??seed atau php artisan mi0rate:re3resh ?seed untuk
melakukan see,in! se3ara bersamaan dengan migrasi"
!embuat C&+, Sederhana pada Laravel : part
-
by SleepingKomodo January 28, 2014
ada tulisan sebelumnya saya telah membahas beberapa hal sebagai berikut1
$ara%el 1 @ 7rame.ork 2or .eb @rtisans
&embuat !ello Eorld di $ara%el"
)ara menggunakan >migration? pada $ara%el
)ara melakukan seeding pada $ara%el
Setelah anda memba3a tentang apa itu $ara%el, 3ara membuat C!ello
EorldD, mi!ration dan see,in!, Kali ini, kita akan membahas mengenai 3ara membuat aplikasi )F45
sederhana dengan menggunakan $ara%el" @rtikel kali ini dibuat sesederhana yang saya bisa, sehingga
mudah dipela(ari oleh pemula sekalipun"
.(itter Bootstrap
4ntuk membuat &ser interfa+e, kita akan menggunakan bantuan Twitter 4 ootstrap . 4ntuk itu, silahkan
unduh terlebih dahulu disini" Kemudian extra+t hasil unduhan anda" Setelah di-extra+t akan
menemukan tiga 2older didalamnya yaitu 2older +ss, fonts dan 5s. Cop ketiga 2older tersebut ke
dalam direktori Gpubli3G-nya $ara%el"
Bootstrap di dalam direktori publik lara%el
Setelah Twitter 4ootstrap anda pindahkan ke direktori p&-li+, berarti sudah siap untuk digunakan pada
aplikasi $ara%el yang akan kita buat" -leh karena itu, marilah kita lupakan se(enak mengenai Twitter
4ootstrap ini dan memulai langkah selan(utnya"
,atabase .abel
Sekarang, marilah kita membuat sebuah tabel baru untuk menampung data yang akan kita gunakan
dalam tutorial kali ini" &isalnya, tabel tersebut akan menampung data-data buku yang akan di(ual"
5engan menggunakan +omman,-line, (alankan perintah php artisan mi0rate:ma:e
create_+oo:s_ta+le" &aka, se3ara otomatis akan ter3ipta sebuah file baru pada direktori
app/data+ase/mi0rations" Buat de2inisi tabel sebagai berikut pada file migrasi tersebut1
!8php use ;lluminate<'ata+ase<=i0rations<=i0ration;
class *reate9oo:s>a+le extends =i0ration 4
pu+lic 3unction up() 4
,chema::create(1+oo:s12 3unction($ta+le)4
$ta+le?&increments(1id1);
$ta+le?&strin0(1title1)?&uni@ue();
$ta+le?&strin0(1author1);
$ta+le?&strin0(1description1);
$ta+le?&strin0(1price1);
$ta+le?&timestamps();
6);
6
pu+lic 3unction do/n()
4
,chema::drop(1+oo:s1);
6
6
8&
$alu (alankan perintah php artisan mi0rate melalui +omman,-line. &aka se3ara otomatis akan
ter3ipta sebuah tabel baru bernama GbooksG, anda bisa melihatnya melalui phpma,min.
C&+,
)F45 merupakan singkatan dari )reate, Fead, 4pdate dan 5elete" 4ntuk itu mari kita bahas satu
persatu mulai dari )reate /memasukan data ke dalam database0"
Create
4ntuk memasukan data ke dalam database kita akan menggunakan sebuah form. ertama-tama, buat
sebuah file baru pada direktori app/vie/s/ dengan nama laBout.+lade.php. Kemudian,
pada file tersebut, buat lao&t !,&$ sebagai berikut1
!C'D*>EFA html&
!html lan0=1en1&
!head&
!meta charset=1ut3?%1 /&
!title&*(U' .pp!/title&
!meta name=1vie/port1 content=1/idth=device?/idth2 initial?scale=12 maximum?
scale=11 /&
44 #>=G::stBle(1css/+ootstrap.min.css1) 66
!/head&;
!+odB&
7Bield(1content1)
44 #>=G::script(1Hs/H@uerB.min.Hs1) 66
44 #>=G::script(1Hs/+ootstrap.Hs1) 66
!/+odB&
!/html&
erhatikan bah.a $ara%el menggunakan 4la,e sebagai templatin! en!ine. @pabila anda masih belum
mengerti tentang 4la,e, tidak masalah" 4la,e adalah sesuatu yang mudah, anda akan mengerti setelah
menyelesaikan tutorial ini"
Selan(utnya, masih pada 2older app/vie/s, buat sebuah file baru bernama ne/+oo:.+lade.php1
7extends(1laBout1)
7section(1content1)
#ello2 ,emua 3orm a:an ditempat:an disiniC
7stop
File inilah yang nantinya akan digunakan untuk menampilkan form yang akan kita
buat pada -rowser. ada file tersebut anda tidak perlu menulis lagi ta! 6html6, 6title6 , 6-o,6 karena
sudah di-exten,s dari file laBout.+lade.php dengan menggunakan 7extends(1laBout1)"
Semua yang akan ditampilkan di -rowser bisa anda simpan diantara 7section(1content1) dan
7stop"
Selan(utnya, tambahkan de2inisi form pada file tersebut1
7extends(1laBout1)
7section(1content1)
!div class=1container1&
!hI&;nsert ne/ +oo:!/hI&
44 Jorm::open()66
44Jorm::la+el(1title12 1>itle1) 66
44Jorm::text(1title12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1author12 1.uthor1) 66
44Jorm::text(1author12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1description12 1'escription1) 66
44Jorm::textarea(1description12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1price12 1Frice1) 66
44Jorm::text(1price12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::su+mit(1,u+mit12 arraB(1class1 =& 1+tn +tn?primarB1)) 66
44 Jorm::close() 66
!/div&
7stop
$alu, buat sebuah ro&te pada file app/routes.php 1
(oute::0et(1ne/+oo:12 3unction()
4
return "ie/::ma:e(1ne/+oo:1);
6);
@kses ro&te tersebut melalui -rowser, maka akan tampil form seperti berikut ini1
*nsert 2orm
!emasukan data ke database
Selan(utnya, mari kita buat (o,el dan Controller untuk memasukan data diinputkan ke dalam database"
Buat sebuah file dengan nama 9oo:.php pada direktori app/models1
!8php class 9oo: extends Alo@uent 4 6 8&
!arus diperhatikan bah.a nama +lass perlu disesuaikan dengan nama tabel yang digunakan, karena
pada 3ontoh kali ini kita menggunakan tabel bernama +oo:s, maka nama +lass yang dibuat
haruslah 9oo:" Seperti halnya pada (o,el User, karena nama tabelnya users" Sebenarnya, anda
(uga bisa menentukan nama (o,el sesuka hati" #amun, 3aranya tidak akan dibahas pada tulisan ini"
&ungkin lain kali akan saya bahas"
-k, setelah (o,el anda buat, selan(utnya mari kita buat +ontroller" ada direktori
app/controllers buatlah sebuah file baru dengan nama 9oo:*ontroller.php 1
!8php
class 9oo:*ontroller extends 9ase*ontroller 4
6
8&
Setelah itu, buat 2ungsi untuk memasukan data buku baru ke dalam ,ata-ase1
!8php
class 9oo:*ontroller extends 9ase*ontroller 4
pu+lic 3unction store()4
$+oo: = ne/ 9oo:;
$+oo:?&title = ;nput::0et(1title1);;
$+oo:?&author = ;nput::0et(1author1);;
$+oo:?&description = ;nput::0et(1description1);;
$+oo:?&price = ;nput::0et(1price1);;
$+oo:?&save();
6
6
8&
Bagian .erakhir
-k, setelah (o,el dan Controller dibuat, langkah selan(utnya yang harus dilakukan adalah
membuat ro&te baru yang mengarah kepada 2ungsi yang kita buat di
dalam Controller. Buka ro&tes.php, tambahkan ro&te sebagai berikut1
(oute::post(1+oo:/insert12 19oo:*ontroller7store1);
Kemudian pada 2ile app/vie/s/ne/+oo:.+lade.php ubah 44 Jorm::open() 66
men(adi 44 Jorm::open(arraB(1action1 =& 19oo:*ontroller7store1)) 66"
5imana CBook)ontrollerHstoreD disesuaikan dengan nama Controller dan 7+tion yang kita tu(u"
Selesai" @nda sekarang bisa men3obanya dengan memasukan data pada form kemudian tekan tombol
submit" $alu, 3ek di ,ata-ase apakah data yang diinputkan sudah masuk"
/onklusi
5iatas kita telah membahas mengenai membuat )reate menggunakan $ara%el" +aitu dengan 3ara
membuat &odel, Kemudian membuat Bie. yang bisa mengirim data melalui form, data
pada form tersebut kemudian dikirim ke +ontroller untuk disimpan ke dalam ,ata-ase dengan
menggunakan Class (o,el yang telah dibuat" Selan(utnya, pada art 2 kita akan membahas mengenai
3ara menampilkan data /Fead0"
$etDs Io
!embuat C&+, Sederhana pada Laravel :
0art 1
by SleepingKomodo January 2J, 2014
Sebelumnya kita telah membahas 3ara memasukan data ke dalam database dengan menggunakan
$ara%el /)reate0" Kali ini kita akan membahas tentang 3ara menampilkan data dari database" @da tiga
tahapan yang akan dilakukan yaitu1
&embuat route"
&engirim data ke %ie."
&embuat looping"
ertama-tama marilah kita membuat sebuah ro&te baru sebagai berikut1
(oute::0et(1+oo:list12 3unction()4
6);
Setelah itu, kita akan mengambil semua data dari tabel +oo:s yang telah kita buat sebelumnya" *ngat,
untuk mengakses tabel +oo:s kita akan menggunakan &odel bernama 9oo:" 4ntuk melakukannya
tambahkan 9oo:::all() pada ro&te yang telah kita buat1
(oute::0et(1+oo:list12 3unction()4
$+oo:s = 9oo:::all();
6);
Setelah itu, kita akan memanggil sebuah view sekaligus mengirim %ariable $+oo:s ke view tersebut"
(oute::0et(1+oo:list12 3unction()4
$+oo:s = 9oo:::all();
return "ie/::ma:e(1list+oo:1)?&/ith(1+oo:sdata12 $+oo:s);
6);
Jika, anda mengakses ro&te tersebut, bisa dipastikan sebuah pesan error akan mun3ul" *tu karena %ie.
bernama list+oo: masih belum kita buat" -leh karena itu, mari kita buat view tersebut" Buat sebuah
file baru bernama list+oo:.+lade.php Sebagai berikut1
7extends(1laBout1)
7section(1content1)
!C?? data a:an ditampil:an disini ??&
7stop
ada route, kita telah mengirimkan sebuah %ariable bernama +oo:sdata yang bisa diakses melalui
view" Bariable tersebut bersisi semua data dari tabel +oo:s yang bisa kita tampilkan dengan bantuan
loopin! 1
7extends(1laBout1)
7section(1content1)
!section class=)container)&
!ta+le class=)ta+le)&
!tr&
!th&>itle!/th&
!th&.uthor!/th&
!th&'escription!/th&
!th&Frice!/th&
!/tr&
73oreach($+oo:sdata as $+oo:)
!tr&
!td&44 $+oo:?&title 66!/td&
!td&44 $+oo:?&author 66!/td&
!td&44 $+oo:?&description 66!/td&
!td&44 $+oo:?&price 66!/td&
!/tr&
7end3oreach
!/ta+le&
!/section&
7stop
Jika anda perhatikan pada 3ode diatas, kita menggunakan 44 $+oo:?&title 66 untuk (udul buku,
44 $+oo:?&author 66 untuk pengarang dsb" Synta: yang digunakan yaitu blade, dimana
44 $+oo:?&title 66 bisa disamakan dengan !8php echo $+oo:?&title; 8& "
Sekarang, anda bisa buka route CbooklistD melalui bro.ser, maka semua data yang berada pada table
CbooksD akan ditampilkan dalam bentuk table" )ara akses route tersebut misal1
http://lrv.dev/+oo:list
@tau (ika anda menggunakan domain Clo3alhostD 1
http://localhost/+oo:list
Kita telah membahas mengenai )reate dan Fead" ada bagian selan(utnya, kita akan membahas
mengenai 4pdate"
Bersambung
!embuat C&+, sederhana pada Laravel : 0art
2
by SleepingKomodo 7ebruary 10, 2014
ada ,ulisan sebelumnya kita telah membahas tentang )reate dan Fead" Sekarang, mari kita
melangkah ke tahap selan(utnya, yaitu 4pdate" ertama-tama, kita akan menampilkan link edit pada
tabel yang telah kita buat sebelumnya ketika menampilkan data" 4bah file list+oo:.+lade.php
men(adi sebagai berikut1
7extends(1laBout1)
7section(1content1)
!section class=)container)&
!ta+le class=)ta+le)&
!tr&
!th&>itle!/th&
!th&.uthor!/th&
!th&'escription!/th&
!th&Frice!/th&
<th>#</th>
!/tr&
73oreach($+oo:sdata as $+oo:)
!tr&
!td&44 $+oo:?&title 66!/td&
!td&44 $+oo:?&author 66!/td&
!td&44 $+oo:?&description 66!/td&
!td&44 $+oo:?&price 66!/td&
<td>{{ link_to_action('BookController@edit', 'edit', array($book-
>id))}}</td>
!/tr&
7end3oreach
!/ta+le&
!/section&
7stop
ada kode diatas, kita menambahkan lin:_to_action yang merupakan helper untuk membuat
!,&$ link" 5imana, link tersebut akan mengarah ke method e,it pada 3ontroller bernama
4ookController" Jika anda (alankan di bro.ser /dengan membuka route -ooklist0, maka akan mun3ul
error sebagai berikut1
ArrorAxception
(oute K9oo:*ontroller7editL not de3ined. ("ie/:
/var/////laravel/app/vie/s/list+oo:.+lade.php)
Krror tersebut mun3ul karena kita belum membuat route yang mengarah ke method tersebut, disamping
method itu sendiri belum kita buat" 4ntuk itu, tambahkan route sebagai berikut pada file routes.php 1
(oute::0et(1+oo:/edit/4id612 19oo:*ontroller7edit1);
Kemudian, tambahkan a+tion ?edit? pada Book)ontroller1
pu+lic 3unction edit($id)
4
M code...
6
Jika, anda klik pada salah satu link yang ditampilkan pada tabel, maka akan mun3ul halaman kosong
pada -rowser. 4ntuk mengubah halaman kosong tersebut men(adi halaman edit, ubah 2ungsi e,it yang
barusan kita tambahkan men(adi sebagai berikut1
pu+lic 3unction edit($id)
4
$+oo: = 9oo:::3ind($id);
return "ie/::ma:e(1edit+oo:1)?&/ith(1+oo:12 $+oo:);
6
Jika, anda (alankan lagi maka kali ini bukan halaman kosong yang anda dapatkan, tetapi anda akan
melihat error sebagai berikut1
;nvalid.r0umentAxception
"ie/ Kedit+oo:L not 3ound.
*ni dikarenakan kita belum membuat %ie. bernama e,it-ook. 4ntuk itu, pada 2older app/vie/s
buatlah file baru dengan nama edit+oo:.+lade.php 1
7extends(1laBout1)
7section(1content1)
!div class=1container1&
!hI&Adit +oo:!/hI&
44 Jorm::open() 66
44Jorm::hidden(1id12 $+oo:?&id)66
44Jorm::la+el(1title12 1>itle1) 66
44Jorm::text(1title12 $+oo:?&title 2 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1author12 1.uthor1) 66
44Jorm::text(1author12 $+oo:?&author 2 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1description12 1'escription1) 66
44Jorm::textarea(1description12 $+oo:?&description 2 arraB(1class1 =& 13orm?
control1))66
44Jorm::la+el(1price12 1Frice1) 66
44Jorm::text(1price12 $+oo:?&price 2 arraB(1class1 =& 13orm?control1))66
44Jorm::su+mit(1Update12 arraB(1class1 =& 1+tn +tn?primarB1)) 66
44 Jorm::close() 66
!/div&
7stop
Feload halaman yang menampilkan error tersebut dan anda akan melihat 2orm edit beserta nilai dari
masing-masing fiel,.
+pdate
4ntuk melakukan update, tambahkan 2ungsi CupdateD pada 4ookController1
pu+lic 3unction update()
4
$id = ;nput::0et(1id1);
$+oo: = 9oo:::3ind($id);
$+oo:?&title = ;nput::0et(1title1);
$+oo:?&author = ;nput::0et(1author1);
$+oo:?&description = ;nput::0et(1description1);
$+oo:?&price = ;nput::0et(1price1);
$+oo:?&save();
6
5an, (angan lupa untuk menambahkan route baru sebagai berikut1
(oute::post(1+oo:/update12 19oo:*ontroller7update1);
Setelah itu, pada 2ile edit+oo:.+lade.php, ubahlah
44 Jorm::open()) 66
men(adi
44 Jorm::open(arraB(1action1 =& 19oo:*ontroller7update1)) 66
Sekarang, 3obalah anda ubah (udul dari buku tersebut, lalu klik tombol update" &aka, data (udul buku
tersebut akan berubah pula di database"
!embuat C&+, Sederhana pada Laravel :
0art 3
by SleepingKomodo 7ebruary 11, 2014
ada kesempatan kali ini kita akan membuat 2ungsi ,elete "7ungsi ,elete digunakan untuk menghapus
data yang telah kita masukan ke dalam ,ata-ase. ertama-tama, tambahkan link 8,elete9 di sebelah link
edit dengan 3ara mengubah file listbook.blade.php sebagai berikut1
7extends(1laBout1)
7section(1content1)
!section class=)container)&
!ta+le class=)ta+le)&
!tr&
!th&>itle!/th&
!th&.uthor!/th&
!th&'escription!/th&
!th&Frice!/th&
!th&M!/th&
!/tr&
73oreach($+oo:sdata as $+oo:)
!tr&
!td&44 $+oo:?&title 66!/td&
!td&44 $+oo:?&author 66!/td&
!td&44 $+oo:?&description 66!/td&
!td&44 $+oo:?&price 66!/td&
!td&44 lin:_to_action(19oo:*ontroller7edit12 1edit12 arraB($+oo:?&id))66 N
44 lin:_to_action(19oo:*ontroller7delete12 1delete12 arraB($+oo:?&id))66!/td&
!/tr&
7end3oreach
!/ta+le&
!/section&
7stop
erhatikan, pada kode diatas kita menambahkan
44 lin:_to_action(19oo:*ontroller7delete12 1delete12 arraB($+oo:?
&id))66 yang digunakan untuk menampilkan link CdeleteD" @pabila anda (alankan di -rowser dengan
3ara mengakses ro&te CbooklistD, maka akan mun3ul error sebagai berikut1
ArrorAxception
(oute K9oo:*ontroller7deleteL not de3ined. ("ie/:
/var/////laravel/app/vie/s/list+oo:.+lade.php)
!al, ini disebabkan kita belum menambahkan ro&te dan a+tion yang diperlukan" -leh karena itu,
tambahkan ro&te baru sebagai berikut1
(oute::0et(1+oo:/delete/4id612 19oo:*ontroller7delete1);
Jika, anda (alankan lagi pada -rowser maka tampilan akan ber(alan normal dan sudah terdapat
link ,elete didalam tabel" #amun, apabila link tersebut anda klik, tetap akan ter(adi error, karena
method 9,elete9 masih belum dibuat, untuk itu pada 4ookController, tambahkan 2ungsi ,elete sebagai
berikut1
pu+lic 3unction delete($id)
4
M code...
6
Execute ,elete
Sekarang, (ika anda klik CdeleteD maka tidak akan mun3ul lagi pesan error" #amun, data tersebut masih
belum terhapus dari dalam ,ata-ase karena kita belum menambahkan apa-apa pada
method ,elete. 4ntuk itu, ubah 2ungsi ,elete men(adi sebagai berikut1
pu+lic 3unction delete($id)
4
$+oo: = 9oo:::3ind($id);
$+oo:?&delete();
return (edirect::to(1+oo:list1);
6
Sekarang, (ika anda klik link ,elete maka data buku yang bersangkutan akan dihapus" erhatikan
bah.a kode return (edirect::to(1+oo:list1); digunakan untuk mengembalikan
/redire3t0 anda ke halaman dengan route CbooklistD"
Selesai" 4ntuk mengunduh so&r+e +o,e dari tutorial ini, silahkan klik disini"
!embuat autentikasi pengguna dengan
menggunakan Laravel
by SleepingKomodo 7ebruary 22, 2014
@utentikasi merupakan hal yang sangat penting dalam sebuah .ebsite" 5engan menggunakan
autentikasi kita bisa men3egah orang yang tidak berkepentingan untuk mengakses situs yang kita buat"
Saya rasa anda sudah paham tentang apa itu autentikasi, (adi saya pikir 3ukup sudah untuk
pen(elasannya" &ari kita lan(utkan ke 3ara membuat autentikasi menggunakan $ara%el" Sebelumnya,
saya asumsikan anda telah melakukan instalasi $ara%el pada lo3alhost dan melakukan setting database"
ertama-tama yang harus kita buat adalah tabel user" 4ntuk membuat tabel user, buat migrasi dengan
men(alankan perintah sebagai berikut1
php artisan mi0rate:ma:e create_user_ta+le
Buka 2older app/mi0ration, anda akan melihat sebuah 2ile berisi 3lass yang bernama
C)reate4ser,ableD" ada 3lass tersebut terdapat dua method bernama CupD dan Cdo.nD" &ethod CupD
digunakan untuk membuat tabel, sedangkan method Cdo.nD digunakan untuk menghapus tabel"
,ambahkan de2inisi tabel sebagai berikut pada method CupD1

,chema::create(1users12 3unction($ta+le)
4
$ta+le?&increments(1id1);
$ta+le?&strin0(13irstname12 2);
$ta+le?&strin0(1lastname12 2);
$ta+le?&strin0(1email12 1)?&uni@ue();
$ta+le?&strin0(1pass/ord12 OP);
$ta+le?&timestamps();
6);
Kemudian pada method Cdo.nD tambahkan perintah sebagai berikut1
,chema::drop(1users1);
Selan(utnya, pada +omman, line (alankan perintah1
php artisan mi0rate
5engan begitu, sebuah tabel bernama CusersD akan dibuat pada database, lengkap beserta seluruh 2ield-
2ield yang dibutuhkan" 4ntuk membuat sistem autentikasi, diperlukan sebuah model, 3ontroller dan
%ie." &odel yang digunakan adalah model bernama C4serD yang biasanya sudah ada se3ara de2ault
pada instalasi $ara%el" Kemudian untuk 3ontroller kita akan membuat sebuah 3ontroller baru bernama
C4ser)ontrollerD, untuk membuat C4ser)ontrollerD, (alankan perintah sebagai berikut menggunakan
+omman, line1
php artisan controller:ma:e User*ontroller
&aka, sebuah 2ile baru bernama C4ser)ontroller"phpD akan ter3ipta pada 2older app/controller"
!embuat #alaman &egistrasi
Setelah 3ontroller kita buat, sekarang kita akan menampilkan sebuah halaman registrasi" ertama-tama,
kita akan mengubah 2ungsi C3reateD pada C4ser)ontrollerD men(adi 2ungsi CregisterD1
pu+lic 3unction re0ister() 4 return "ie/::ma:e(1re0ister1); 6
ada 2ungsi register diatas, kita akan diarahkan pada sebuah %ie. bernama CregisterD" #amun, %ie.
tersebut masih belum kita buat" 4ntuk itu pada 2older app/vie/s tambahkan sebuah 2ile baru
bernama Cregister"blade"phpD1
7extends(1laBout1)
7section(1content1)
!div class=)container)& !h2&(e0ister!/h2&
7i3(,ession::has(1pesan1))
!div class=)alert alert?success)&44 ,ession::0et(1pesan1) 66!/div&
7endi3
44Jorm::open(arraB(1action1 =& 1User*ontroller7store1)) 66
44Jorm::la+el(13irstname12 1Jirst -ame1) 66
44Jorm::text(13irstname12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1lastname12 1Gast -ame1) 66
44Jorm::text(1lastname12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1email12 1Amail1) 66
44Jorm::text(1email12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1pass/ord12 1Fass/ord1) 66
44Jorm::pass/ord(1pass/ord12 arraB(1class1 =& 13orm?control1))66
!+r&
44Jorm::su+mit(1(e0isterin 'on0C12 arraB(1class1 =& 1+tn +tn?primarB1)) 66
44 Jorm::close() 66 !/div& 7stop
Setelah itu, buatlah ro&te baru pada 2ile routes.php seperti berikut ini1
(oute::0et(1re0ister12 1User*ontroller7re0ister1);
(oute::post(1store12 1User*ontroller7store1);
Setelah route dibuat, sekarang anda bisa membuka halaman register yang barusan anda buat melalui
bro.ser dengan 3ara mengakses route CregisterD"&isal1
http:/localhost/laravel/re0ister
&egistrasikan 0engguna
Setelah halaman registrasi kita buat, kita akan memasukan data dari form yang barusan kita buat ke
dalam database" ada 2orm tersebut terdapat kode sebagai berikut1
44Jorm::open(arraB(1action1 =& 1User*ontroller7store1)) 66
*tu berarti, ketika disubmit, data dari 2orm tersebut akan di-han,le -leh method CstoreD pada
C4ser)ontrollerD" 4ntuk itu silahkan buka C4ser)ontrollerD kemudian tambahkan perintah sebagai
berikut ke dalam method CstoreD1
$user = ne/ User();
$user?&3irstname = ;nput::0et(13irstname1);
$user?&lastname = ;nput::0et(1lastname1);
$user?&email = ;nput::0et(1email1);
$user?&pass/ord = #ash::ma:e(;nput::0et(1pass/ord1));
$user?&save();
return (edirect::to(1re0ister1)?&/ith(1pesan12 1(e0istrasi +erhasilC1);
Sekarang, apabila anda isi 2orm tersebut kemudian tekan tombol CFegisterin 5ongLD /seperti submit0,
maka data yang anda masukan akan tersimpan di database"
!embuat 4itur Login
4ntuk membuat halaman $ogin, pertama-tama buatlah dua buah 2ungsi baru yaitu CloginD dan
Cauthenti3ateD1
pu+lic 3unction lo0in()4
6
pu+lic 3unction authenticate()4
6
Selain itu, buatlah dua buah route baru pada 2ile routes.php sebagai berikut1
(oute::0et(1lo0in12 1User*ontroller7lo0in1);
(oute::post(1authenticate12 1User*ontroller7authenticate1);
#alaman Login
Sekarang, kita akan membuat tampilan halaman login" ada method CloginD tambahkan baris perintah
sebagai berikut1
return "ie/::ma:e(1lo0in1);
Kemudian pada direktori app/vie/s tambahkan sebuah %ie. baru dengan nama 2ile
lo0in.+lade.php1
7extends(1laBout1)
7section(1content1)
!div class=)container)&
!div class=)col?md?Q col?md?o33set?I)&
!h2&Go0in!/h2&
!hr /&
7i3(,ession::has(1pesan_error1))
!div class=)alert alert?dan0er)&44 ,ession::0et(1pesan_error1) 66!/div&
7endi3
44Jorm::open(arraB(1action1 =& 1User*ontroller7authenticate1)) 66
44Jorm::la+el(1email12 1Amail1) 66
44Jorm::text(1email12 112 arraB(1class1 =& 13orm?control1))66
44Jorm::la+el(1pass/ord12 1Fass/ord1) 66
44Jorm::pass/ord(1pass/ord12 arraB(1class1 =& 13orm?control1))66
44Jorm::su+mit(1Go0in12 arraB(1class1 =& 1+tn +tn?primarB1)) 66
44Jorm::close() 66
!/div&
!/div&
7stop
Autentikasi
Ketika tombol login di-klik, form akan diarahkan ke method Cauthenti3ateD pada 4ser)ontroller" ada
method inilah autentikasi dilakukan, untuk itu tambahkan baris perintah sebagai berikut pada method
authenti3ate1
i3 (.uth::attempt(arraB(1email1 =& ;nput::0et(1email1)2 1pass/ord1 =&
;nput::0et(1pass/ord1))))
4
echo )lo0in +erhasil);
6
else4
return (edirect::to(1lo0in1)?&/ith(1pesan_error12 1Go0in 0a0al2 email atau
pass/ord salahC1);
6
Sekarang, (ika anda tekan tombol CloginD dan autentikasi berhasil maka akan tampil tulisan >login
berhasil?" #amun, (ika autentikasi gagal, maka sebuah pesan kesalahan akan ditampilkan pada halaman
login"
!embuat #alaman ,ashboard
Sebelumnya, apabila kita sudah berhasil login kita hanya akan melihat tulisan Clogin berhasilD" #ah,
kali ini kita akan membuat supaya pengguna diarahkan ke halaman dashboard apabila login berhasil"
Buat sebuah 3ontroller baru bernama C5ashboard)ontrollerD1
!8php
class 'ash+oard*ontroller extends 9ase*ontroller
4
pu+lic 3unction index()4
return "ie/::ma:e(1dash+oard1);
6
6
8&
Setelah itu, buatlah sebuah route baru pada ro&tes.php sebagai berikut1
(oute::0et(1dash+oard12 1'ash+oard*ontroller7index1);
Kemudian, (angan lupa untuk membuat sebuah %ie. baru bernama Cdashboard"blade"phpD" Setelah itu,
ubah autentikasi yang ada pada method authenti3ate men(adi sebagai berikut1
3unction authenticate()4
i3 (.uth::attempt(arraB(1email1 =& ;nput::0et(1email1)2 1pass/ord1 =&
;nput::0et(1pass/ord1))))
4
return (edirect::to(1dash+oard1);
6
return (edirect::to(1lo0in1)?&/ith(1pesan_error12 1Go0in 0a0al2 email atau
pass/ord salahC1);
6
Sampai disini, apabila anda men3oba login kembali maka akan diarahkan ke halaman dashboard" ,entu
halaman dashboard yang dimaksud adalah halaman kosong, mengingat kita baru membuat %ie.nya
sa(a, tanpa ada isinya"
!embuat fungsi logout
Sekarang, saatnya kita membuat 2ungsi logout" 4ntuk itu, kita akan membuat %ie. CdashboardD yang
telah kita buat dari halaman kosong men(adi sebagai berikut1
7extends(1laBout1)
7section(1content1)
!nav class=)nav+ar nav+ar?inverse nav+ar?static?top) role=)navi0ation)&
!div class=)container?3luid)&
!C?? 9rand and to00le 0et 0rouped 3or +etter mo+ile displaB ??&
!div class=)nav+ar?header)&
!+utton tBpe=)+utton) class=)nav+ar?to00le) data?to00le=)collapse) data?
tar0et=)M+s?example?nav+ar?collapse?1)&
!span class=)sr?onlB)&>o00le navi0ation!/span&
!span class=)icon?+ar)&!/span&
!span class=)icon?+ar)&!/span&
!span class=)icon?+ar)&!/span&
!/+utton&
!a class=)nav+ar?+rand) hre3=)M)&.uth.pp!/a&
!/div&
!C?? *ollect the nav lin:s2 3orms2 and other content 3or to00lin0 ??&
!div class=)collapse nav+ar?collapse) id=)+s?example?nav+ar?collapse?1)&
!ul class=)nav nav+ar?nav nav+ar?ri0ht)&
!li&!a hre3=)lo0out)&!i class=)0lBphicon 0lBphicon?o33)&!/i&
lo0out!/a&!/li&
!/ul&
!/div&!C?? /.nav+ar?collapse ??&
!/div&!C?? /.container?3luid ??&
!/nav&
!div class=)container)&
!h1&'ash+oard!/h1&
!/div&
7stop
Selan(utnya, perhatikan pada halaman dashboard diatas terdapat kode sebagai berikut1
!li&!a hre3=)lo0out)&!i class=)0lBphicon 0lBphicon?o33)&!/i&
ada atribut hre2, kita bisa melihat bah.a kita akan diarahkan pada route ClogoutD apabila link tersebut
kita klik" #amun, route ClogoutD masih belum kita buat, oleh itu tambahkan route ClogoutD sebagai
berikut pada 2ile routes.php1
(oute::0et(1lo0out12 1User*ontroller7lo0out1);
Kemudian, tambahkan sebuah method pada C4ser)ontrollerD sebagai berikut1
pu+lic 3unction lo0out()4
.uth::lo0out();
return (edirect::to(1lo0in1)?&/ith(1pesan12 1+erhasil lo0out1);
6
Selan(utnya, untuk menampilkan pesan berhasil logout, tambahkan perintah sebagai berikut pada
bagian atas 2orm login1
7i3(,ession::has(1pesan1))
44 ,ession::0et(1pesan1) 66
7endi3
/esimpulan
Se(auh ini anda telah berhasil membuat halaman registrasi, login dan logout" ,entunya, masih ada
beberapa kelemahan dalam aplikasi yang barusan kita buat" &isalnya, akan ter(adi error apabila kita
memasukan email yang sama saat registrasi" Kemudian, (ika kita belum login dan mengakses
http://localhost/dash+oard seharusnya pengguna diarahkan ke halaman login" 5an masih
ada beberapa hal lagi yang harus diperbaiki namun tidak akan saya bahas dalam tulisan ini berharap
anda bisa men3obanya sendiri"
!a%e a ni3e dayL
!enggunakan pagination pada Laravel
by SleepingKomodo @pril 1<, 2014
Sepertinya hampir setiap aplikasi berbasis .eb yang memiliki 2ungsi untuk mengatur data memerlukan
pa!ination ketika menampilkan data yang 3ukup banyak"
agination adalah solusi yang 3ukup baik untuk mengatasi kelebihan in2ormasi" Saya pikir hampir
semua orang tahu 3ara menggunakan pagination"
#amun, untuk membuat sistem pagination dari a.al akan sangat memakan .aktu dan (uga
membosankan" @da banyak potongan program yang harus anda tulis hanya untuk menampilkan
pagination sesuai dengan (umlah data dari database dan posisi anda melihat data saat ini, kemudian
menampilkannya pada bagian ba.ah data"
4ntungnya, pagination merupakan salah satu dari sekian banyak 2itur pada $ara%el dimana kita bisa
menggunakannya dengan lebih mudah tanpa harus membuat dari a.al" &embuat pagination dari a.al
bisa men(adi mimpi buruk, sedangkan (ika anda tidak menggunakan pagination tentu kasihan pengguna
anda (ika harus melihat terlalu banyak data dalam satu .aktu"
Apa itu 0agination
agination adalah suatu 3ara menampilkan data yang banyak ke dalam beberapa halaman" Ketika a.al
mula membuat sebuah aplikasi .eb, anda mungkin tidak memerlukan pagination" #amun, seiring
ber(alannya .aktu dan semakin banyak data yang harus ditampilkan, maka pagination akan men(adi
sangat penting" Jika anda menampilkan banyak data sekaligus dalam satu .aktu, maka hal itu akan
memperlambat proses pengambilan data dari database dan menyebabkan aplikasi men(adi lambat"
5engan menggunakan pagination, hanya beberapa set data sa(a yang akan diambil dari database dan
ditampilkan langsung pada aplikasi" ada database, (umlah data dihitung dan dibagi-bagi men(adi
beberapa halaman tergantung dari berapa banyak yang ingin anda tampilkan per halamannya"
Kemudian (umlah halaman diperkirakan dan di(adikan nomor halaman pada bagian ba.ah tampilan
data" Semoga anda mengerti /sudah mengerti sebelumnya0 tentang apa itu pagination"
!enggunakan method paginate pada Laravel
Seperti yang sudah saya (elaskan, $ara%el bisa mempermudah pembuatan pa!ination" ada KloMuent
maupun pada Muery builder-nya $ara%el, terdapat method paginate yang bisa menentukan berapa
(umlah data yang ingin ditampilkan, dimana semuanya sudah di-handle oleh $ara%el"
&isal, dengan menggunakan KloMuent anda bisa mengambil data dari database dengan menggunakan
method paginate sebagai berikut1
$users = User::pa0inate(O);
atau (ika menggunakan Muery builder1
$users = User::pa0inate(Q);
Kemudian, pada bagian ba.ah dari data yang ditampilkan /di ba.ah 2orea3h0, anda bisa menambahkan
link pagination dengan 3ara sebagai berikut1
44 $users?&lin:s(); 66
)ontoh kode lengkap yang bisa anda gunakan untuk membuat pagination adalah sebagai berikut1
routes.php
(oute::0et(1/12 3unction()
4
$products = Froduct::pa0inate(Q);
return "ie/::ma:e(1tampil:an1)?&/ith(1products12 $products);
6);
vie(s/tampilkan.blade.php
73oreach($products as $product)
!tr&
!td&44 $product?&name 66!/td&
!td&44 $product?&price 66!/td&
!td&44 $product?&stoc: 66!/td&
!td&
44 Gin:::edit(1product/edit/1.$product?&id) 66 N
44 Gin:::delete(1product/delete/1.$product?&id) 66
!/td&
!/tr&
7end3oreach
44 $products?&lin:s() 66
&udah bukan' dengan menggunakan $ara%el pembuatan pagination bisa semudah itu" #amun,
mungkin ada kalanya anda perlu untuk mengubah tampilan pagination tersebut supaya sesuai dengan
keinginan anda, misalnya supaya sesuai dengan )SS yang telah anda buat" @nda bisa melakukannya
dengan 3ara membuat 3ustom pagination 3aranya akan saya (elaskan pada bagian diba.ah ini"
!embuat Custom 0agination
4ntuk membuat 3ustom pagination pertama-tama anda buat sebuah 2older baru, pada app/vie/s"
&isal, 2older tersebut anda beri nama structure" @nda boleh memberi nama lain (ika anda mau"
Setelah itu, pada 2older tersebut buat sebuah 2ile baru bernama pa0ination.+lade.php" )ontoh
isi 2ile tersebut adalah sebagai berikut1
!8php
7i3 ($pa0inator?&0etGastFa0e() & 1)
!ul class=)ui pa0ination menu)&
!a hre3=)44 $pa0inator?&0etUrl(1) 66)
class=)item44 ($pa0inator?&0et*urrentFa0e() == 1) 8 1 disa+led1 : 11 66)&
!i class=)icon le3t arro/)&!/i& Frevious
!/a&
73or ($i = 1; $i != $pa0inator?&0etGastFa0e(); $iRR)
!a hre3=)44 $pa0inator?&0etUrl($i) 66)
class=)item44 ($pa0inator?&0et*urrentFa0e() == $i) 8 1 active1 : 11 66)&
44 $i 66
!/a&
7end3or
!a hre3=)44 $pa0inator?&0etUrl($pa0inator?&0et*urrentFa0e()R1) 66)
class=)item44 ($pa0inator?&0et*urrentFa0e() == $pa0inator?&0etGastFa0e()) 8 1
disa+led1 : 11 66)&
-ext !i class=)icon ri0ht arro/)&!/i&
!/a&
!/ul&
7endi3
8&
Silahkan anda ubah kode diatas sesuai dengan kebutuhan anda" &isalnya, mengubah nama 3lass dan
lain-lain" Setelah itu, buka 2ile app/con3i0/vie/.php, lalu
ubah key pagination men(adi sebagai berikut1
1pa0ination1 =& 1structure/pa0ination1
5engan 3ara seperti itu, ketika anda menuliskan $products?&lin:s() , maka yang ditampilkan
bukan lagi pagination ba.aan dari lara%el, tetapi pagination yang barusan anda buat" Selamat men3obaL
Beker5a dengan routing pada Laravel
by SleepingKomodo @pril 1<, 2014
Fouter merupakan bagian yang sangat penting ketika berurusan dengan aplikasi terutama yang berbasis
.eb" Fouter ber2ungsi menangani reMuest aplikasi kemudian mengarahkan aplikasi untuk memanggil
halaman8resou3e tertentu"
&isalnya, (ika anda memanggil 4F$ 1 http://localhost/products kemungkinan besar anda
ingin mengarahkan aplikasi ke sebuah 3ontroller bernama Froduct*ontroller.php kan'
#ah, pada postingan kali ini saya akan menga(ak anda mendalami sedikit lebih spesi2ik mengenai
router pada $ara%el, serta bagaimana 3ara mengimplementasikannya" &enurut saya, sistem router pada
$ara%el merupakan sistem router yang terbaik yang pernah saya gunakan selama mengenal 2rame.ork
! dan sangat memudahkan sekali bahkan ketika membuat routing yang 3ukup kompleks"
!engenal routes pada Laravel
Foutes pada $ara%el terdapat pada 2ile app/routes.php" Semua routes diletakkan pada 2ile tersebut
agar ketika anda ingin memodi2ikasinya, anda tahu persis dimana routes tersebut berada" Selain dengan
membuka 2ile tersebut, anda (uga bisa melihat routes apa sa(a yang terdapat pada aplikasi anda dengan
menggunakan perintah pada 3ommand line1
php artisan routes
5engan perintah seperti diatas, seluruh routes yang ada pada aplikasi akan ditampilkan pada 3ommand
line"
&outes dasar
Se3ara de2ault, ketika anda instal $ara%el sudah terdapat routes seperti berikut pada routes"php 1
(oute::0et(1/12 3unction()
4
return "ie/::ma:e(1hello1);
6);
Seperti yang anda lihat, terdapat C8D /slash0 yang menandakan route tersebut menangani halaman utama
dari aplikasi anda /halaman root0" Selain itu, route diatas mengembalikan sebuah %ie. dengan nama
2ile app/vie/s/hello.php" &ethod 0et pada 3ontoh diatas adalah suatu method yang digunakan
untuk menampilkan resour3e /bisa berupa 2ungsi atau 3ontroller0N
&ethod 0et menerima dua parameter, sebuah path dan sebuah 3losure" ath tersebut adalah 4F$ yang
harus ditangani oleh method 0et tersebut" Sedangkan )losure adalah berupa anonymous 2un3tion,
anonymous 2un3tion adalah sebuah 2ungsi yang tidak memiliki nama dan dapat dile.atkan kepada
2ungsi lain sebagai argument"
&oute menggunakan method post
Selain method 0et, pada $ara%el (uga terdapat method post untuk menangani route" &ethod post,
biasanya digunakan untuk mengarahkan 2orm ketika di submit" erhatikan 3ontoh berikut1
(oute::post(1product/store12 3unction()
4
return Froduct::create(;nput::all());
6);
&oute menggunakan method an6
FD,> dan SA> merupakan !ttp %erbs" FD,> bisa ditangani dengan method post pada route, dan SA>
bisa ditangani dengan method get" Sekarang, bagaimana (ika kita ingin membuat route yang bisa
menangani keduanya' Ja.abannya adalah menggunakan method anB"
(oute::anB(1hello12 3unction()
4
return 1#ello 5orld1;
6);
&oute menggunakan #..0S
Jika anda menginginkan supaya reMuest ditangani melalui !ttps, anda bisa menggunakan array pada
saat mele.atkan 3losure pada argument" erhatikan 3ontoh berikut1
(oute::0et(1product12 arraB(1https12 3unction()
4
return 1(oute men00una:an #>>F,1;
6));
!enggunakan parameter pada route
,erkadang anda perlu mele.atkan parameter pada 4F$, sebagai 3ontoh untuk mengambil produk
dengan id O 1, maka anda mele.atkan parameter 1 pada 4F$ ketika mengakses route product
seperti ini 1 product/1" 4ntuk itu, anda perlu membuat route seperti berikut1
(oute::0et(1product/4id612 3unction($id)
4
return Froduct::3ind($id);
6);
ada 3ontoh diatas, parameter tersebut .a(ib diisi" @rtinya, anda tidak bisa mengakses route product,
tetapi harus dengan parameter product/13odeP" #ah supaya parameter tersebut bersi2at opsional
dan anda bisa mengakses route product tanpa parameter, anda perlu membubuhkan tanda tanya
setelah nama parameter serta menambahkan de2ault %alue pada parameter tersebut" )ontoh1
(oute::0et(1product/4id8612 3unction($id = -UGG)
4
i3($id)
4
return Froduct::3ind($id);
6
return Froduct::all();
6);
!engarahkan route ke controller
ada 3ontoh diatas, route diarahkan kepada sebuah anonymous 2un3tion yang ada pada method 0et,
post atau anB" #ah, untuk mengarahkan route ke 3ontroller lakukan dengan 3ara seperti berikut ini1
(oute::0et(1product/4id612 1Froduct*ontroller7sho/Fro3ile1);
*tulah sedikit mengenai 3ara menggunakan route pada $ara%el" 4ntuk lebih lengkapnya, (uga bisa
melihatnya langsung pada dokumentasi $ara%el 4" Semoga berman2aat"

You might also like