Yii: Cara buat CRUD di dalam Module menggunakan Gii

Saya baru coba-coba lagi framework PHP yang bernama Yii ini. Dokumentasi Yii memang tidak selengkap Codeigniter, tapi Yii punya Gii yang bisa generate Controller, Model, Form, CRUD, dan Module. Di Codeigniter, Module saja ga ada. Ternyata gampang men-generate Module di Gii, dan saya juga bisa buat CRUD di dalam Module tersebut. Caranya?

Sebelum melanjutkan setidaknya harus paham cara meng-install Yii di webserver. Itu bisa lihat di sini. Anggaplah webapp atau foldernya kita namai dengan “yiitest”, dan saya mau membuat module dengan nama ‘user_access’. Kemudian setelah installasi ikuti langkah-langkah berikut.

  1. Aktifkan Gii, dengan meng-uncomment  module bagian “Gii” di protected\config\main.php. Dan setting passwordnya seperti ini:
    'modules'=>array(
     // uncomment the following to enable the Gii tool
     /**/
     'gii'=>array(
     'class'=>'system.gii.GiiModule',
     'password'=>'password',
     // If removed, Gii defaults to localhost only. Edit carefully to taste.
     'ipFilters'=>array('127.0.0.1','::1'),
     ),
  2. Buka url berikut http://localhost/yiitest/index.php?r=gii, login dengan password yg diset tadi.
  3. Buka link “Module Generator”. Isikan Module ID dengan ‘user_access’. Tekan tombol Preview. Akan menghasilkan seperti berikut. Kemudian tekan tombol Generate.
    modules\user_access\User_accessModule.php
    modules\user_access\components
    modules\user_access\controllers\DefaultController.php
    modules\user_access\messages
    modules\user_access\models
    modules\user_access\views\default\index.php
    modules\user_access\views\layouts

    Buka folder ini protected\modules\user_access, module sudah di-generate.

  4. Tambahkan module ‘user_access’ yang telah dibuat tadi di config protected\config\main.php
    'modules'=>array(
     // uncomment the following to enable the Gii tool
     /**/
     'gii'=>array(
     'class'=>'system.gii.GiiModule',
     'password'=>'qweasd',
     // If removed, Gii defaults to localhost only. Edit carefully to taste.
     'ipFilters'=>array('127.0.0.1','::1'),
     ),
     'user_access', //<--- ini jangan lupa, module harus didaftarkan di config
  5. Buat Database MySQL sebagai berikut:
     CREATE TABLE IF NOT EXISTS `tbl_user` (
     `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
     `username` varchar(20) NOT NULL,
     `password` varchar(128) NOT NULL,
     `created_when` datetime NOT NULL,
     `last_login` datetime NOT NULL,
     `status` int(1) NOT NULL DEFAULT '0',
     PRIMARY KEY (`id`),
     UNIQUE KEY `username` (`username`),
     KEY `status` (`status`),
     KEY `superuser` (`superuser`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  6. Buka link “Model Generator.” Isikan form sebagai berikut:
     Table Prefix: tbl_
     Table Name: tbl_user
     Model Class: User
     Model Path : application.modules.user_access.models

    Previewnya seperti berikut di bawah, setelah itu kemudian tekan tombol Generate

    modules\user_access\models\User.php
  7. Kemudian buka link “Crud Generator”. Isikan form sebagai berikut:
     Model Class: user_access.models.User
     Controller ID: user_access/user
    modules\user_access\controllers\UserController.php
    modules\user_access\views\user\_form.php
    modules\user_access\views\user\_search.php
    modules\user_access\views\user\_view.php
    modules\user_access\views\user\admin.php
    modules\user_access\views\user\create.php
    modules\user_access\views\user\index.php
    modules\user_access\views\user\update.php
    modules\user_access\views\user\view.php

    Perhatikan folder protected\modules\user_access sudah di-generate dengan Controller, Model, View, dsb.

  8. CRUD dapat di akses dengan membuka url berikut http://localhost/yiitest/index.php?r=user_access

 

Share!
    This entry was posted in Iseng, Programming, Tutorial and tagged , , , , , , , , . Bookmark the permalink.

    13 Responses to Yii: Cara buat CRUD di dalam Module menggunakan Gii

    1. junie says:

      gan tolong ane dong, ane kesulitan dalam belajar yii ni..
      waktu klik link generetor MODEL sama CRUD g berhasil dengan keterangan seperti ini

      CDbConnection failed to open the DB connection: could not find driver

      C:\xampp\htdocs\yii\framework\gii\generators\model\ModelCode.php(57)

      45 ));
      46 }
      47
      48 public function requiredTemplates()
      49 {
      50 return array(
      51 ‘model.php’,
      52 );
      53 }
      54
      55 public function init()
      56 {
      57 if(Yii::app()->{$this->connectionId}===null)
      58 throw new CHttpException(500,’A valid database connection is required to run this generator.’);
      59 $this->tablePrefix=Yii::app()->{$this->connectionId}->tablePrefix;
      60 parent::init();
      61 }
      62
      63 public function prepare()
      64 {
      65 if(($pos=strrpos($this->tableName,’.'))!==false)
      66 {
      67 $schema=substr($this->tableName,0,$pos);
      68 $tableName=substr($this->tableName,$pos+1);
      69 }

      mohon bantuanya para master…

    2. pusber says:

      waduuh, belum bisa mahami ini tutorialnya, bagaimana cara membuat CRUD di dalam Modules bang, bukan Module loo ya ?

      Best Regards

      Ekoo Ardoo

      • Arif says:

        Framework Yii memang agak susah dipelajari dibandingkan dengan Codeigniter. Tapi Yii aslinya sudah ada fitur modularnya, dibanding Codeigniter yang harus menggunakan Library tambahan. Kesulitannya di mana?

    3. Artikel Blog says:

      wadhuh… tutorialnya gak jalan tuh mas..

    4. rikoy says:

      kang, minta tutorial CRUD yang pake DAO/query, lagi belajar nihh?

    5. Dhanz says:

      Keren info’ya bro thanx ya !!!

    6. newbi says:

      browse ke sini: index.php?r=user_access/user/admin

      dapet pesen:
      Error 403
      You are not authorized to perform this action.

      wehehe helep bro, knp tuh?

    7. sohail says:

      thanx for help !! worked perfectly !

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>