Forum Nusansifor

Full Version: CI - Grocerycrud - Contoh Relasi manual dan auto value multiselect
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Berikut contoh relasi manual:

PHP Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class 
Pegawai extends OperatorController {

    public function 
__construct() {
        
parent::__construct();    
    }    
    
    public function 
index() {
        
$this->data['judul_browser'] = 'Data Pegawai';
        
$this->data['judul_utama'] = 'Data';
        
$this->data['judul_sub'] = 'Pegawai';

        
$this->output->set_template('gc');

        
$this->load->library('grocery_CRUD');
        
$crud = new grocery_CRUD();
        
$crud->set_table('tbl_data_pegawai');
        
$crud->set_subject('Data Pegawai');

        
$crud->columns('nama_lengkap''jns_kelamin''telepon','jabatan_ids''aktif''keterangan');
        
$crud->fields('nama_lengkap''jns_kelamin','jabatan_ids''alamat''tgl_lahir''kota_lahir''telepon','email','aktif','keterangan');

        
$crud->field_type('jns_kelamin','dropdown',
            array(
'L' => 'Laki-laki','P' => 'Perempuan','N' => 'Belum diketahui'));
        
$crud->field_type('aktif','dropdown',
            array(
'Y' => 'Aktif','N' => 'Non Aktif'));

        
$this->db->select('id,jabatan');
        
$this->db->from('tbl_jabatan');
        
$this->db->where('aktif','Y');
        
$query $this->db->get();
        if(
$query->num_rows()>0){
            
$result $query->result();
            foreach (
$result as $val) {
                
$jabatan_arr[$val->id] = $val->jabatan;
            }
        } else {
            
$jabatan_arr = array('' => '-');
        }
        
$crud->field_type('jabatan_ids','multiselect',$jabatan_arr);

        
$crud->callback_column('alamat',array($this'_full_text'));
        
$crud->callback_column('keterangan',array($this'_full_text'));

        
$crud->display_as('jns_kelamin','Jenis Kelamin');
        
$crud->display_as('jabatan_ids','Jabatan');
    
        
$crud->required_fields('nama_lengkap','jabatan','jns_kelamin','aktif');

        
$output $crud->render();

        
$out['output'] = $this->data['judul_browser'];
        
$this->load->section('judul_browser''default_v'$out);
        
$out['output'] = $this->data['judul_utama'];
        
$this->load->section('judul_utama''default_v'$out);
        
$out['output'] = $this->data['judul_sub'];
        
$this->load->section('judul_sub''default_v'$out);
        
$out['output'] = $this->data['u_name'];
        
$this->load->section('u_name''default_v'$out);

        
$this->load->view('default_v'$output);

    }

    function 
_full_text ($value$row){
        
$value wordwrap($value25'<br>');
        return 
$value;
    }



Berikut contoh relasi auto, link relasi nya oleh nama field id:

PHP Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class 
Siswa extends OperatorController {

    public function 
__construct() {
        
parent::__construct();    
    }    
    
    public function 
index() {
        
$this->data['judul_browser'] = 'Data Siswa';
        
$this->data['judul_utama'] = 'Data';
        
$this->data['judul_sub'] = 'Siswa';

        
$this->output->set_template('gc');

        
$this->load->library('grocery_CRUD');
        
$crud = new grocery_CRUD();
        
$crud->set_table('tbl_data_siswa');
        
$crud->set_subject('Data Siswa');

        
$crud->columns('nama_lengkap''jns_kelamin''telepon''kelompok_id''kelas_id''ekskul_ids''aktif''keterangan');
        
$crud->fields('nama_lengkap''jns_kelamin''alamat''tgl_lahir''kota_lahir''telepon''nama_ortu','kelompok_id''kelas_id','ekskul_ids''aktif','keterangan');

        
$crud->field_type('jns_kelamin','dropdown',
            array(
'L' => 'Laki-laki','P' => 'Perempuan','N' => 'Belum diketahui'));
        
$crud->field_type('aktif','dropdown',
            array(
'Y' => 'Aktif','N' => 'Non Aktif'));

        
$crud->set_relation('kelompok_id','tbl_kelompok','nama_kelompok');
        
$crud->set_relation('kelas_id','tbl_kelas','nama_kelas');

        
$this->db->select('id,nama_ekskul');
        
$this->db->from('tbl_ekskul');
        
$this->db->where('aktif','Y');
        
$query $this->db->get();
        if(
$query->num_rows()>0){
            
$result $query->result();
            foreach (
$result as $val) {
                
$ekskul_arr[$val->id] = $val->nama_ekskul;
            }
        } else {
            
$ekskul_arr = array('' => '-');
        }
        
$crud->field_type('ekskul_ids','multiselect',$ekskul_arr);

        
$crud->callback_column('alamat',array($this'_full_text'));
        
$crud->callback_column('keterangan',array($this'_full_text'));

        
$crud->order_by('nama_lengkap''ASC');

        
$crud->display_as('jns_kelamin','Jenis Kelamin');
        
$crud->display_as('ekskul_ids','Ekstrakulikuler');
        
$crud->display_as('kelas_id','Kelas');
        
$crud->display_as('kelompok_id','Kelompok');

        
$crud->required_fields('nama_lengkap','jns_kelamin','aktif','kelompok_id''kelas_id');

        
$output $crud->render();

        
$out['output'] = $this->data['judul_browser'];
        
$this->load->section('judul_browser''default_v'$out);
        
$out['output'] = $this->data['judul_utama'];
        
$this->load->section('judul_utama''default_v'$out);
        
$out['output'] = $this->data['judul_sub'];
        
$this->load->section('judul_sub''default_v'$out);
        
$out['output'] = $this->data['u_name'];
        
$this->load->section('u_name''default_v'$out);

        
$this->load->view('default_v'$output);

    }

    function 
_full_text ($value$row){
        
$value wordwrap($value25'<br>');
        return 
$value;
    }

aku lebih suka pakai relasi auto
mending pakek yang manual engk terlalu ribet
kalau untuk orang pemula bekerja bagus pakek yang mana pak
Hasil dari relasi manual atau automatis ini keren banget