MANY_MANY di YII

Hi all,ane newbie banget di yii,dan ane butuh bantuan nih dari teman2 semua,

Ane ada sebuah kasus dimana tabel A berhubungan many to many am table B dan udah ane breakdown ke tabel C

tabel nya seperti ini




SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;


SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;


SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';





CREATE SCHEMA IF NOT EXISTS `lksa_kemensos` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;


USE `lksa_kemensos` ;





-- -----------------------------------------------------


-- Table `lksa_kemensos`.`data_lksa`


-- -----------------------------------------------------


CREATE  TABLE IF NOT EXISTS `lksa_kemensos`.`data_lksa` (


  `id` BIGINT NOT NULL AUTO_INCREMENT ,


  `kode_lksa` VARCHAR(45) NOT NULL ,


  `nama_lksa` VARCHAR(45) NOT NULL ,


  `alamat` VARCHAR(45) NOT NULL ,


  `kabupaten_id` INT NOT NULL ,


  `provinsi_id` INT NOT NULL ,


  `email` VARCHAR(45) NOT NULL ,


  `pimpinan` VARCHAR(45) NOT NULL ,


  `status_kepemilikan_id` INT NOT NULL ,


  `contact_person` VARCHAR(45) NOT NULL ,


  `no_hp` VARCHAR(45) NOT NULL ,


  `jumlah_anak` VARCHAR(45) NOT NULL ,


  `akta_notaris` VARCHAR(45) NOT NULL ,


  `NPWP` VARCHAR(45) NOT NULL ,


  `sip` VARCHAR(45) NOT NULL ,


  `bank` VARCHAR(45) NOT NULL ,


  `nama_dalam_rekening` VARCHAR(45) NOT NULL ,


  `no_rekening` VARCHAR(45) NOT NULL ,


  PRIMARY KEY (`id`) ,


  INDEX `fk_data_lksa_status_kepemilikan1` (`status_kepemilikan_id` ASC) ,


  INDEX `fk_data_lksa_provinsi1` (`provinsi_id` ASC) ,


  INDEX `fk_data_lksa_kabupaten1` (`kabupaten_id` ASC) ,


  CONSTRAINT `fk_data_lksa_status_kepemilikan1`


    FOREIGN KEY (`status_kepemilikan_id` )


    REFERENCES `lksa_kemensos`.`status_kepemilikan` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION,


  CONSTRAINT `fk_data_lksa_provinsi1`


    FOREIGN KEY (`provinsi_id` )


    REFERENCES `lksa_kemensos`.`provinsi` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION,


  CONSTRAINT `fk_data_lksa_kabupaten1`


    FOREIGN KEY (`kabupaten_id` )


    REFERENCES `lksa_kemensos`.`kabupaten` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION)


ENGINE = MyISAM;








-- -----------------------------------------------------


-- Table `lksa_kemensos`.`data_anak`


-- -----------------------------------------------------


CREATE  TABLE IF NOT EXISTS `lksa_kemensos`.`data_anak` (


  `id` BIGINT NOT NULL AUTO_INCREMENT ,


  `kode_anak` VARCHAR(45) NOT NULL ,


  `nama_anak` VARCHAR(45) NOT NULL ,


  `jenis_kelamin` INT NOT NULL ,


  `tempat_lahir` VARCHAR(45) NOT NULL ,


  `tanggal_lahir` DATE NOT NULL ,


  `dokumen_identitas_id` INT NOT NULL ,


  `keadaan_orangtua_id` INT NOT NULL ,


  `tempat_tinggal` VARCHAR(45) NOT NULL ,


  `pengasuh_sebelum_dipanti_id` INT NOT NULL ,


  `alasan_masuk_id` INT NOT NULL ,


  `nama_ayah` VARCHAR(45) NOT NULL ,


  `nama_ibu` VARCHAR(45) NOT NULL ,


  `alamat_orangtua` VARCHAR(45) NOT NULL ,


  `pendidikan_anak` VARCHAR(45) NOT NULL ,


  PRIMARY KEY (`id`) ,


  INDEX `fk_data_anak_dokumen_identitas_id1` (`dokumen_identitas_id` ASC) ,


  INDEX `fk_data_anak_pengasuh_sebelum_dipanti1` (`pengasuh_sebelum_dipanti_id` ASC) ,


  INDEX `fk_data_anak_keadaan_orangtua1` (`keadaan_orangtua_id` ASC) ,


  INDEX `fk_data_anak_alasan_masuk1` (`alasan_masuk_id` ASC) ,


  CONSTRAINT `fk_data_anak_dokumen_identitas_id1`


    FOREIGN KEY (`dokumen_identitas_id` )


    REFERENCES `lksa_kemensos`.`dokumen_identitas` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION,


  CONSTRAINT `fk_data_anak_pengasuh_sebelum_dipanti1`


    FOREIGN KEY (`pengasuh_sebelum_dipanti_id` )


    REFERENCES `lksa_kemensos`.`pengasuh_sebelum_dipanti` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION,


  CONSTRAINT `fk_data_anak_keadaan_orangtua1`


    FOREIGN KEY (`keadaan_orangtua_id` )


    REFERENCES `lksa_kemensos`.`keadaan_orangtua` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION,


  CONSTRAINT `fk_data_anak_alasan_masuk1`


    FOREIGN KEY (`alasan_masuk_id` )


    REFERENCES `lksa_kemensos`.`alasan_masuk` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION)


ENGINE = MyISAM;








-- -----------------------------------------------------


-- Table `lksa_kemensos`.`data_lksa_data_anak`


-- -----------------------------------------------------


CREATE  TABLE IF NOT EXISTS `lksa_kemensos`.`data_lksa_data_anak` (


  `data_lksa_id` BIGINT NOT NULL ,


  `data_anak_id` BIGINT NOT NULL ,


  INDEX `fk_middle_lksa_anak_data_lksa1` (`data_lksa_id` ASC) ,


  INDEX `fk_middle_lksa_anak_data_anak1` (`data_anak_id` ASC) ,


  PRIMARY KEY (`data_lksa_id`, `data_anak_id`) ,


  CONSTRAINT `fk_middle_lksa_anak_data_lksa1`


    FOREIGN KEY (`data_lksa_id` )


    REFERENCES `lksa_kemensos`.`data_lksa` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION,


  CONSTRAINT `fk_middle_lksa_anak_data_anak1`


    FOREIGN KEY (`data_anak_id` )


    REFERENCES `lksa_kemensos`.`data_anak` (`id` )


    ON DELETE NO ACTION


    ON UPDATE NO ACTION)


ENGINE = MyISAM;











SET SQL_MODE=@OLD_SQL_MODE;


SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;


SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;



pertanyaannya,ane mau insert data_anak dibawah salah satu id data_lksa gimana ya caranya?langkah2 biar yii tau klo misal adi itu ada di lksa bermain dan di lksa bermain itu ada si adi juga?please bantuannya

PERTAMA

  1. di model A dan B di set relation MANY_MANY ke C misal nama relasinya ‘bermain’

  2. di form A dibuatin inputan misal chekboxlist B dengan nameinput = ‘bermain’ sesi relasi valuenya ambil dari data id B

  3. di form B juga dibuat sebaliknya

  4. dimodel A dan B di tambahin behaviour




public function behaviors()

	{

	    return array(

		'manymanyrelation'=>array(

			'class'=>'RelationManyManyBehavior',

			),

	    );

	}



  1. taruh file di attachment ke folder protected/component

  2. import file itu di configuration file

7 see the magic apabila form A chckbox nya di cek dan di submit maka otomatis field C akan terisi

waaaw that’s great thx bang echoo,berarti harus input dulu ya di A itu berhubungan dengan id B apa aja,dan di B berhubungan dengan id A siapa aja?

yup

tapi g perlu masukin id si table A di B kan ya bang?

maaf nih ane newbie bgt,klo tanpa inputan gtu gimana ya?kayak proses instalasi gtu pertama isi form table A nah abis itu isi form tabel :(

kalo pake cekbox kan udah otomatis id nya ter generate ke form asalakna value cekbox listnya benar

ini di pake kalo tabel C form nyangikut tabel A or B

tapi kalo masih mau pake form sendiri sih bikin model C dan form nya