emprit

join yii

Feb 4th, 2014
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.25 KB | None | 0 0
  1. //model buku.php
  2. <?php
  3. class Buku extends CActiveRecord{
  4.  
  5.   //mengembalikan model statis yaitu Buku
  6.   public static function model($className=__CLASS__){
  7.     return parent::model($className);
  8.   }
  9.  
  10.  
  11.   //untuk menentukan tabel yang digunakan
  12.   public function tableName(){
  13.     return 'buku';
  14.   }
  15.  
  16.   //untuk menentukan label dari field yang akan di input
  17.     public function attributeLabels(){
  18.         return array(
  19.             'id'=>'ID',
  20.         'judul'=>'Judul Buku',
  21.         'penulis'=>'Penulis Buku',
  22.         'id_kategori'=>'Kategori',
  23.         'tanggal_terbit'=>'Tanggal Terbit'
  24.         );
  25.   }
  26.  
  27.  
  28.   //tambahan function relation
  29.   public function relations(){
  30.         return array(
  31.  
  32.         //menentukan classname dan tipe relation
  33.       'kategori'=>array(self::BELONGS_TO,
  34.       'kategori', //nama tabel/nama model
  35.       'id_kategori' //foreign key
  36.     )
  37.   );
  38.   }
  39.  
  40.  
  41.   //membuat function rules
  42.   public function rules(){
  43.             return array(
  44.  
  45.             //tentukan field yg wajib diisi
  46.           array('judul, penulis, id_kategori', 'required'),
  47.  
  48.           //tentukan tipe data yg hrs di input
  49.           array('id_kategori', 'numerical', 'integerOnly'=>true)
  50.       );
  51.   }                            
  52.  
  53. //model kategori.php
  54. class Kategori extends CActiveRecord{
  55.  
  56.   //mengembalikan model statis yaitu Buku
  57.   public static function model($className=__CLASS__){
  58.     return parent::model($className);
  59.   }
  60.  
  61.  
  62.   //untuk menentukan tabel yang digunakan
  63.   public function tableName(){
  64.     return 'kategori';
  65.   }
  66.  
  67.   //untuk menentukan label dari field yang akan di input
  68.     public function rules(){
  69.         return array(
  70.                  array('nama_kategori', 'required'),
  71.     );
  72.   }
  73.  
  74.   public function attributeLabels(){
  75.         return array(
  76.               'id'=>'ID',
  77.                   'nama_kategori'=>'Kategori'
  78.     );
  79.   }
  80. }
  81.  
  82. //controller
  83. class BukuController extends Controller{
  84.  
  85.     public $layout="column1";
  86.         const INDEX="index";
  87.  
  88.       //menampilkan data
  89.             public function actionIndex(){
  90.  
  91.             //untuk memanggil CDbCriteria
  92.           $criteria = new CDbCriteria();
  93.                     $criteria->select = 'kategori.id_kategori';
  94.                     $criteria->with = array('INNER JOIN'=>array('select'=>'buku.id_kategori'));
  95.  
  96.           //hitung jumlah data buku
  97.                     $count = Buku::model()->count($criteria);
  98.  
  99.           //memanggil class CPagination dg parameter $count
  100.           $pages = new CPagination($count);
  101.  
  102.           //tentukan jumlah data yg dtentukan perHALAMAN
  103.           $pages->pageSize = 5;
  104.           $pages->applyLimit($criteria);
  105.  
  106.           //sorting
  107.           $sort = new CSort('Buku');
  108.  
  109.           //tentukan field yang akan disorting
  110.           $sort->attributes=array('id','judul','penulis','id_kategori','tanggal_terbit');
  111.           $sort->applyOrder($criteria);
  112.  
  113.           //cari data dg parameter $criteria
  114.         $data = Buku::model()->findAll($criteria);
  115.          
  116.           //render ke index.php pada views/buku
  117.           //$this->render('index', array('data'=>$data));
  118.                     $this->render('index', array(
  119.                                                                     'data'=>$data, //panggil $data
  120.                                         'pages'=> $pages, //panggil $pages
  121.                                         'sort' => $sort //pangil $sort
  122.                                         )
  123.                                     );
  124.       }
Advertisement
Add Comment
Please, Sign In to add comment