Artikel dan Tutorial
Tutorial Scaffolding – Membuat List Pemain American Football
12 CommentsPosted on June 6, 2007
Filed Under Tutorial |
Original Tutorial By Jason Gilmore (developer.com)
Tutorial kali ini akan memberikan sebuah contoh sederhana menggunakan fitur scaffolding yang ada pada framework CakePHP. Scaffolding adalah sebuah variabel tambahan yang memudahkan developer untuk melihat prototipe aplikasi CRUD (Create, Read, Update, Delete) yang akan ia buat, sebelum ia menuliskan seluruh script yang dibutuhkan pada controller aplikasi.
Sebagai contoh, kita akan membuat sebuah aplikasi untuk melakukan manajemen pemain sebuah tim American Football. Aplikasi yang akan kita buat memerlukan setidaknya link untuk melakukan creating (pembuatan item pemain), editing (edit item), viewing (melihat item pemain) dan deleting (menghapus item pemain). Selain itu, perlu pula data untuk mengetahui dengan tim mana pemain tersebut bergabung.
Kita akan menggunakan framework CakePHP untuk membuat prototipe aplikasi CRUD. Kita asumsikan, Anda sudah terbiasa dan familiar dengan konsep arsitektur MVC yang menjadi dasar kerja CakePHP. Selain itu, kita asumsikan Anda sukses melakukan instalasi framework CakePHP pada webserver Anda.
Membuat Tabel Database
Untuk tutorial kali ini, kita akan membuat dua buah tabel database yang mewakili kebutuhan dasar dari aplikasi kita. Tabel yang akan kita buat adalah players dan teams. Cukup pastekan script SQL ini di phpMyadmin Anda, setelah Anda mendefinisikan database aplikasi Anda:
CREATE TABLE players (
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(50) NOT NULL,
position VARCHAR(25) NOT NULL,
team_id SMALLINT(6)
)CREATE TABLE teams (
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
)
Cermati item field team_id yang terdapat pada tabel players . Ini adalah foreign key yang dipetakan ke primary key tabel teams. Field tersebut diberi nama demikian karena CakePHP mampu secara otomatis mengidentifikasinya sebagai foreign key dan memanfaatkannya untuk menampilkan berbagai macam hal yang menarik seperti men-generate listboxes saat menambahkan dan mengedit pemain baru.
Menggunakan Scaffolding
CakePHP mempunyai sebuah fitur istimewa yang dikenal dengan nama scaffolding. Sesuai dengan namanya, scaffolding berfungsi untuk mem-parsing skema tabel dan membuat form-form yang sesuai dengan tipe datanya. Dengan demikian, pengguna CakePHP akan melihat contoh tampilan aplikasi sebelum ia benar-benar menuliskan secara lengkap source code pada controller-nya.
Ada beberapa peraturan yang harus ditaati supaya fitur scaffolding ini berjalan dengan baik :
• Apabila Anda ingin memetakan sebuah foreign key ke sebuah tabel, pada aplikasi kita adalah tabel team ke tabel player, maka foreign key tersebut harus diberi nama dengan TABLE_id, dimana TABLE adaIah kata tunggal dari foreign table yang kita petakan. Dalam hal ini, kita memberi nama foreign key kita dengan nama team_id (team adalah kata tunggal dari teams).
• Tabel yang akan kita prototipe-kan harus dipetakan pada controller yang mendefinisikan variabel $scaffold.
• Apabila Anda ingin memanfaatkan keunggulan CakePHP untuk memetakan hubungan (asosiasi) antar tabel, tabel yang akan Anda prototipe-kan harus dihubungkan pada model yang mendefinisikan asosiasi tabel-tabel yang relevan. CakePHP mendukung empat jennis asosiasi antar tabel: hasOne, hasMany, belongsTo, dan hasAndBelongsToMany. Pada aplikasi kita, masing-masing pemain berasosiasi dengan satu tim, sehingga kita akan menggunakan jenis asosiasi belongsTo.
Mendefinisikan Model dan Controller
Buat file controller berikut ini dan isikan dengan script berikut :
<?php
class PlayersController extends AppController
{
var $scaffold;
}
?>
Simpan dengan nama players_controller.php dan letakkan pada direktori /app/controllers/ . Berikutnya kita akan mendefinisikan controller team. Buatlah file bernama teams_controller.php berisi script di bawah ini dan simpan pada direktori /app/controllers/ .
<?php
class TeamsController extends AppController
{
var $scaffold;
}
?>
Berikutnya, kita akan mendefinisikan model Player. Buat sebuah file bernama player.php berisi script di bawah ini dan simpan pada direktori /app/models/ .
<?php
class Player extends AppModel
{
var $name = ‘Player’;
var $belongsTo = array(’Team’ =>
array(’className’ => ‘Team’,
‘conditions’ => ”,
‘order’ => ”,
‘foreignKey’ => ‘team_id’
)
);
}
?>
Array $belongsTo telah didefinisikan, memetakan kolom team_id ke model Team. Akhirnya, kita pun harus mendefinisikan model Team sehingga CakePHP mengetahui kolom mana yang harus ditampilkan sebagai hasil pemetaan pada tabel teams. Buatlah file bernama team.php berisi script di bawah ini dan simpan ke direktori /app/models/ :
<?php
class Team extends AppModel
{
var $name = ‘Team’;
var $displayField = ‘name’;
}
?>
Percaya atau tidak, kini Anda telah memiliki sebuah aplikasi insert, edit, dan delete untuk tabel players dan teams ! Buka pada browser Anda link http://localhost/cake/teams/add dan tambahkan sebuah tim American Football baru. Tampilan list dari tim Anda setelah Anda masukkan beberapa data seharusnya terlihat sebagai berikut (http://localhost/cake/teams) :

Berikutnya, arahkan browser Anda pada link http://localhost/cake/players/add dan masukkan beberapa data pemain. Seharusnya, Anda akan melihat sebuah daftar dropdown dari data tim yang sebelumnya sudah Anda masukkan. Tampilan list pemain setelah Anda memasukkan data seharusnya terlihat seperti ini (http://localhost/cake/players/) :

Anda dapat mempelajari fitur scaffolding ini pada manual CakePHP dengan alamat http://manual.cakephp.org/chapter/scaffolding, dan jenis asosiasi (relasi) antar tabel pada alamat http://manual.cakephp.org/chapter/models.
Selamat Mencoba !
Sumber : www.developer.com
Comments
12 Responses to “Tutorial Scaffolding – Membuat List Pemain American Football”
Leave a Reply
CakePHP Indonesia adalah sebuah blog tentang framework CakePHP berbahasa Indonesia yang membahas tentang artikel, tutorial, berita dan tips yang terkait dengan CakePHP.
|
menu utama
kategori
- Bakery (1)
- Berita (11)
- Contributors (1)
- Diary (8)
- Eksplorasi (6)
- General Thought (7)
- Konsultasi (2)
- Tips dan Trik (8)
- Tutorial (9)
- Uncategorized (1)
- video (2)
CakePHP Indonesia adalah sebuah blog tentang
enak lagi generate codenya pake bake..
hehehe..
kita cuma bikin databasenya aja
wahh.. tutorialnya keren.. tapi setelah saya coba kok agak bingung yah pas dibagian setelah pendefinisian Model dan Controller…
Kok kita bisa langsung memanggil url http://localhost/cake/teams/add, padahal kita belum pernah membuat folder teams dan folder add….???
hasil setelah saya coba step-by step diatas
Page Not Found
maaf mas.. masih newbie bgt nie, saya pengin coba cakephp, untuk membuat aplikasi, biasanya saya make pure coding di PHP, belum pernah pake frame work
ohh…coba cek dulu apakah sudah dihidupkan mod_rewrite nya. Baca di manual CakePHP, bagaimana persyaratan instalasi CakePHP
waduh.. thx banget mas sunu … ternyata mod_rewrite -nya masih di uncomment di httpd.conf nya. dah googlong 2 hari ga nemu 2 …
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
fyuhhh.. akhirnya blajar cake nya jalan lagi…..
terima kasih
om2 yang ada di sini…
saya sudah coba & jalan, mung tampilannya ga ada tabel2nya kaya di screenshootnya di atas ya?dimanakah cara ngatur nya ben tampilan scaffoldingnya bagus?
mas, salam knl aq anam (newbie nie…)
aq lg nyoba cake nih tp da mslh nie…
klo mod_rewrite -nya aq enable-kan kok malah muncul prngatan ‘Bad Request’
tanya knapa?????????????????
mas mo nanya lagi nie…
1. aku dah nyoba tutorial scaffolding american football, tapi yg muncul “page not found”, ak jg dah ngedit brs:
-LoadModule rewrite_module modules/mod_rewrite.so
-AddModule mod_rewrite.c
kok malah “bad request”, trus aku baca manualnya, disitu disuruh mengedit brs:
-LoadModule rewrite_module libexec/httpd/mod_rewrite.so
tetep ga da perubahan.
2. Apa itu Dispatcher? soalnya tmnku bilang framework butuh Dispatcher, apa benar? Di manual cakePHP juga ada bahasan khusus Dispatcher.
3. tolong jlasin ttg bake dong…
maksh atas waktu n jawabannya, maaf klo bnyak nanya he..he..
@anam :
1. btw, kamu udah restart Apache nya blom ? Yang jelas, kalau udah terpenuhi semuanya, coba cek dulu apakah Apache kamu support untuk me-rewrite file .htaccess ? Gimana caranya ? buka file httpd.conf nya Apache, terus baca aja di sana. Pokoknya, folder tempat kamu nginstall CakePHP, file .htaccess nya harus AllowOverride semua. Kalau bingung, Googling aja …
2. Pertanyaan kedua, bisa di-Googling, so saya gak akan jawab di sini. Silahkan cari aja via wikipedia
3. yang ketiga apalagi. silahkan baca sendiri ya.
pesen saya, don’t be lazy aja, keep fighting !
@naz
coba deh, kamu include-kan file-file css yang ada di library-nya cake. saran saya, file default.thtml kamu, dibikin semirip mungkin dengan file default.thtml yang ada di library cakephp (folder cake/), termasuk kamu copykan semua file2 css yang udah disediakan cakephp secara default ke folder webroot kamu
thank’s ya tutor nya
mau nanya, kalau di cake setiap bikin controller harus juga bikin model???
asslammualikum
salam kenal pak sunu, saya pemula dalam cakephp
pak sunu mau tanya kalau kursus cakephp dimana ya?
buku buku mengenai cake php apakah dijual?
video tutorial cakephp yang komplet dimana ya
terima kasih
Ass, Makasih mas thanks tutornya