Beranda > CakePHP > Tutorial Scaffolding – Membuat List Pemain American Football

Tutorial Scaffolding – Membuat List Pemain American Football

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 !

Disadur dari : idcake.web.id

Kategori:CakePHP
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: