hai teman yii... apa kabar.. kembali lagi bersama catatan saya..
sekarang saya ingin mencoba membuat catatan dari proses belajar saya tentang Implementasi AR dari satu table sebuah database.. tanpa babibu.. langsung aja teman :ngacir:
step 1 : terserah teman2 mau ngapain.. mau nyiapin kopi dl or teh manis ataupun minuman ringan.. tapi yang jelas pada tahap pertama ini agan harus menyiapkan hasil extrakan yii klo disini saya beri nama folder "serius"
nah sedikit catatan nih dalam penggunaan directory tutorial ini :
- root codingan web yii saya (*rootCode) : /opt/lampp/htdocs/serius/protected/
- folder model (*rootCode/model)
- folder control (*rootCode/controller)
- folder views (*rootCode/views)
OK klo dah siap semua kita berlanjut ke tahap selanjutnya :
step 2 : koneksi database
- yang jelas pertama kali harus ada database dan tabelnya dulu , klo males copaste aja nih codenya: [code]CREATE DATABASE test; USE test;
CREATE TABLE IF NOT EXISTS user
(
id
int(5) NOT NULL AUTO_INCREMENT,
username
varchar(256) NOT NULL,
password
varchar(256) NOT NULL,
PRIMARY KEY (id
),
UNIQUE KEY username
(username
)
) ENGINE=MyISAM ;
--
-- Dumping data for table user
¶
INSERT INTO user
(id
, username
, password
) VALUES
(1, 'rianday', 'admin'),
(2, 'luw', 'apaajabolee');
[/code]
selanjutnya setting koneksi , nah klo disini saya menggunakan mysql : settingnya ada di (rootCode/config/main.php) nih contohnya : [code]/* 'db'=>array(
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),
*/ // uncomment the following to use a MySQL database
'db'=>array(
'connectionString' => 'mysql:host=127.0.0.1;dbname=test',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
[/code]
nah yang dijadiin komentar itu settingan untuk database sqlite.. (karena kita kan gunaiin mysql).
step 3 : masuk ke Gii buat bikin model
masuk ke http://localhost/serius/index.php?r=gii
tapi sebelumnya harus udah di setting dulu gii-nya
[code] 'modules'=>array(
// uncomment the following to enable the Gii tool
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'inipassword',
),
),
[/code]
nah klo dah gitu login dah sebagai admin di gii :
- bikin model dari tabel user (disini digenerate dengan nama User.php)
- bikin CRUD-nya (semuanya aja di bikin)
nah selesai dah sampe sini tinggal di click [b]try it now[/b] atau ke alamat http://localhost/serius/index.php?r=user
cobain dah tuh..
step 4 : analisa AR yang terbentuk dari model yang di generate :
klo disini dicoba menjelaskan yang (*rootCode/views/user/_view.php)
nah buka halaman itu di text editor like notepad / gedit.
dilihat dah tuh ada proses pemanggilan
[code] <?php echo CHtml::encode($data->username); //contoh : 'username' disini adalah nama field dari table yang kita select (yaitu table : user) ?> [/code]
nah trus buka file index.php (*rootCode/views/user/index.php)
dilihat deng.. disitu ada
[code]<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProviders, // nah liat ini dah ada variabel yng di lempar ke _view.php
'itemView'=>'_view',
)); ?> [/code]
nah variable $dataProvider itu diambil dari model User.php yang udah mereturn nilai AR ke index kita liat codingannya (*rootCode/Controller/UserController.php)
[code] public function actionIndex()
{
$Userss=new CActiveDataProvider('User');
$this->render('index',array(
'dataProviders'=>$Userss,
));
[/code]
nah CActiveDataProvider('User') itu sama dengan fungsi User::Model()->findAll() klo gak salah.. dan hasil itu di taro di variabel $Userss dan kemudian di lempar ke views (*rootCode/views/user/index.php) dengan variabel 'dataProviders' diisikan $Userss.
Step 5 : nah klo lebih enaknya (step 4) di baca dari bawah ke atas Bottom Up kata orang betawi mah.. tahapannya :
UserController.php -> index.php -> _view.php
kurang lebih seperti itu..
selesai :
*sebenarnya ini blum sampe k AR-nya klo ke AR-nya nyambung k tutorial berikutnya... OK nanti saya bikin catetan lagi dah..
contoh kasusnya adalah tablenya nambah satu yaitu profil (yang nantinya nyambung sama table user dengan hubungan one-to-one)
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.