Yii: Cara buat CRUD di dalam Module menggunakan Gii

NgoprekProgrammingTutorial
  1. Beranda
  2. Ngoprek
  3. 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

 

Mungkin Kamu juga suka

Memisahkan folder htdocs dan MySQL data di XAMPP
Fungsi PHP: Paging dengan Parameter Tambahan

18 Komentar. Leave new

  • hallo. mau nanya dong. udah berhasil login di gii. tapi di model generator nya pas mau di isi table name nya kenapa susah ya. di bawah form table name nya muncul bertuliskan table does not exist warna merah. kenapa ya kira kira?. pusing nih. gak nemu solusinya. ga tau belom bisa mecahin masalahnya. kalo emang tidak terhubung dgn tabel di db nya cara hubungin nya gimana? terimakasih, mohon pencerahannya dong. . aku pake yii versi 1.1.17

    Balas
  • eh, maaf salah nulis. maksud saya di model generator nya.

    Balas
  • mas, kenapa ya di modul generator saya kan d suruh ngisi database connection, sama ngisi untuk nama tabelnya. itu saya udah isi semuanya. nah pas waktu saya klik preview malah di database connection nya muncul tulisan “A valid database connection is required to run this generator” ?. gmana ya itu cara biar jalan?. terus kalo aku cari referensi lain ada form generate nya. tapi punyaku cuma preview aja. itu cara nya supaya jalan gimana ya? makasih, di tunggu jawabannya

    Balas
    • Dilihat dari errornya masalah DB tuh. Mmm coba di oprek bagian setingan/config databasenya. Pastikan DB nya jalan servicenya dan host, username, password, dan portnya sudah benar.

  • 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…

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

    Best Regards

    Ekoo Ardoo

    Balas
    • 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?

  • wadhuh… tutorialnya gak jalan tuh mas..

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

    Balas
  • Keren info’ya bro thanx ya !!!

    Balas
  • 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?

    Balas
  • thanx for help !! worked perfectly !

    Balas

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Fill out this field
Fill out this field
Mohon masukan alamat email yang sah.
You need to agree with the terms to proceed

Latest

Tak ditemukan hasil apapun.