2014-09-25
Bekerja dengan MVC
Model ◦ Kelas menyimpan proses bisnis
Views ◦ Berhubungan dengan input dan ouput
Controller ◦ Penyimpanan ke database ◦ Menguhubungkan antara model dan ke view
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Gii Controller Generator
Menciptakan Controller dan view tanpa model Nama Controller bisa ditentukan sendiri Hanya menampilkan view secara statis Tidak melibatkan proses dalam model Secara default membentuk actionIndex() dan membentuk view index
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
1
2014-09-25
Contoh:
Nama controller
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
File controller/PepatahController.php render('index'); } ………….. } ?>
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
2
2014-09-25
File views/pepatah/index.php breadcrumbs=array('Pepatah',); ?>
id . ' /memanggil aksi :' . $this->action->id; ?>
Terdapat dalam folder .
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
View pepatah/index
Nama view
Id Controller Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
3
2014-09-25
Menambahkan action
Buka file PepatahController.php public function actionKataBijak() { $this->render('kataBijak'); }
•
Buat File Baru kataBijak.php Simpan ke views/pepatah/… Rajin Pangkal Pandai"; ?> Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Hasil Pengujian http://localhost/web_mi1/index.php?r=pepatah/kataBijak
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
4
2014-09-25
http://localhost/web_mi1/index.php?r=pepatah/kataBijak
Id Controoler
Views kataBijak.php
Controller PepatahController.php public function actionKataBijak() { $this->render('kataBijak'); } Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Menambahkan Model
{ public $kataNya; public function setKataNya($apaYa) { $this->kataNya=$apaYa; } public function getKataNya() { return $this->kataNya; } }?> Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
5
2014-09-25
Tambahkan action..? bagian Controller public function actionKataBijak2() { $model = new Kata; $this->render('kataBijak2', array('model'=>$model)); }
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Tambah file view kataBijak2.php setKataNya('Sedikit Demi Sedikit Lama-lama Menjadi Bukit'); echo "
" . $model->getKataNya() ."
"; ?>
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
6
2014-09-25
Model
Kelas Model dalam apalikasi Yii-based diletakkan dalam folder ../protected/models/. File-file model tersebut disampan dengan nama file bereksensi .php. Model perluasan dari kelas CModel juga digunakan oleh sub kelas CFormModel, dan CActiveRecord,
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Penulisan Model class NamaKelas extend CFormModel { //atribut public $atribut_1; public $atribut_2; Variabel/properti dalam model public $atribut_3; …………….. //methode public funtion rules() { methode untuk menegisikan ………………….. aturan validasi masukan } public function attributeLabels() { …………… } }
methode untuk menegisikan label pada isian masing atribut pada form masukkan Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
7
2014-09-25
Contoh kelas Kotak(1): class Kotak extends CFormModel { public $panjang; public $lebar; Properti $panjang, $lebar
// validasi public function rules() { return array(
methode rules() Validasi isi panjang, dan lebar tidak boleh kosong
array('panjang, lebar','numerical', 'integerOnly'=>true)); } Validasi isi panjang, dan …… lanjut-> lebar hanya berisi nilai bertipe integer Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Contoh kelas Kotak(2): ………….. public function attributeLabels() { return array( 'panjang'=>'Panjang Kotak', 'lebar'=>'Lebar Kotak',); }
public function luas() { return $this->panjang * $this->lebar; } public function keliling() { return 2*($this->panjang+$this->lebar); } }
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
8
2014-09-25
Input kotak dengan form View (form) labelEx($model,'panjang'); ?> textField($model,'panjang'); ?>
Di model attributeLabels() : 'panjang'=>'Panjang Kotak',
Di model validasi rules() : array('panjang, lebar', 'required'), Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom.,Kembali M.Kom
Controller (1) render('index'); } Meciptakan kelas instan public function actionForm() dengan nama $model { $model=new Kotak; $model->unsetAttributes(); if(isset($_POST['Kotak'])) Memperoleh nilai input { dari form $model->attributes= $_POST['Kotak']; $panjang = $_POST['Kotak']['panjang']; Setelah memasukkan data $lebar = $_POST['Kotak']['lebar']; memanggil view “luas” dengan $this->redirect(array('luas', 'panjang'=>$panjang,'lebar'=>$lebar)); menyertakan nilai panjang dan } $this->render('form',array('model'=>$model,)); lebar }
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
9
2014-09-25
Controller (2) ………….. public function actionLuas() { actionLuas() $model=new Kotak; $this->render(‘luas’,..) $model->unsetAttributes if(isset($_GET['Kotak'])) $model->attributes=$_GET['Kotak']; $this->render('luas',array('model'=>$model, )); } }
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
Views luas.php http://localhost/test/index.php?r=kotak/luas&panjang=10&lebar=20
panjang = $_GET["panjang"]; $model->lebar = $_GET["lebar"]; echo "Panjang " . $model->panjang; echo "
"; echo "Lebar " . $model->lebar; echo "
"; echo "Luas " . $model->luas(); echo "
"; echo "Keliling " . $model->keliling(); ?>
Kembali
Pemrograman Web Lanjut Fremawork Yii, Dosen : Badiyanto, S.Kom., M.Kom
10