Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //model buku.php
- <?php
- class Buku extends CActiveRecord{
- //mengembalikan model statis yaitu Buku
- public static function model($className=__CLASS__){
- return parent::model($className);
- }
- //untuk menentukan tabel yang digunakan
- public function tableName(){
- return 'buku';
- }
- //untuk menentukan label dari field yang akan di input
- public function attributeLabels(){
- return array(
- 'id'=>'ID',
- 'judul'=>'Judul Buku',
- 'penulis'=>'Penulis Buku',
- 'id_kategori'=>'Kategori',
- 'tanggal_terbit'=>'Tanggal Terbit'
- );
- }
- //tambahan function relation
- public function relations(){
- return array(
- //menentukan classname dan tipe relation
- 'kategori'=>array(self::BELONGS_TO,
- 'kategori', //nama tabel/nama model
- 'id_kategori' //foreign key
- )
- );
- }
- //membuat function rules
- public function rules(){
- return array(
- //tentukan field yg wajib diisi
- array('judul, penulis, id_kategori', 'required'),
- //tentukan tipe data yg hrs di input
- array('id_kategori', 'numerical', 'integerOnly'=>true)
- );
- }
- //model kategori.php
- class Kategori extends CActiveRecord{
- //mengembalikan model statis yaitu Buku
- public static function model($className=__CLASS__){
- return parent::model($className);
- }
- //untuk menentukan tabel yang digunakan
- public function tableName(){
- return 'kategori';
- }
- //untuk menentukan label dari field yang akan di input
- public function rules(){
- return array(
- array('nama_kategori', 'required'),
- );
- }
- public function attributeLabels(){
- return array(
- 'id'=>'ID',
- 'nama_kategori'=>'Kategori'
- );
- }
- }
- //controller
- class BukuController extends Controller{
- public $layout="column1";
- const INDEX="index";
- //menampilkan data
- public function actionIndex(){
- //untuk memanggil CDbCriteria
- $criteria = new CDbCriteria();
- $criteria->select = 'kategori.id_kategori';
- $criteria->with = array('INNER JOIN'=>array('select'=>'buku.id_kategori'));
- //hitung jumlah data buku
- $count = Buku::model()->count($criteria);
- //memanggil class CPagination dg parameter $count
- $pages = new CPagination($count);
- //tentukan jumlah data yg dtentukan perHALAMAN
- $pages->pageSize = 5;
- $pages->applyLimit($criteria);
- //sorting
- $sort = new CSort('Buku');
- //tentukan field yang akan disorting
- $sort->attributes=array('id','judul','penulis','id_kategori','tanggal_terbit');
- $sort->applyOrder($criteria);
- //cari data dg parameter $criteria
- $data = Buku::model()->findAll($criteria);
- //render ke index.php pada views/buku
- //$this->render('index', array('data'=>$data));
- $this->render('index', array(
- 'data'=>$data, //panggil $data
- 'pages'=> $pages, //panggil $pages
- 'sort' => $sort //pangil $sort
- )
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment