Associations PhpActiveRecord Pada Codeigniter

Buat: 01/22/2013 - 03:23
Pojok Programmer - Associations PhpActiveRecord Pada Codeigniter

PhpActiveRecord merupakan sebuah library dengan lisensi open source yang digunakan untuk menyederhanakan perintah-perintah SQL dalam bahasa pemrograman PHP dan juga memudahkan bagi programmer codeigniter dalam membuat CRUD. Untuk lebih mudah memahami PhpActiveRecord setidaknya Anda familiar dengan Object oriented programming (OOP) Object relational mapping (ORM). Artikel ini akan membahas tentang associations dengan kasus tabel seperti gambar di bawah ini:

RELASI MANY TO MANY

Untuk menginstall PhpActiveRecord pada codeigniter silahkan berkunjung ke alamat situs ini. Kemudian buat 3 (tiga)  model dengan nama post, category, post_has_category kemudian isikan dengan code dibawah ini :

Post.php

<?php

use ActiveRecord\Model;

class Post extends ActiveRecord\Model{
	static $table_name = 'post';

	static $has_many = array(
		array('post_has_category','class_name'=>'Posthascategory'),
		array('category','class_name'=>'Category','through'=>'post_has_category')
	);
}

Category.php

<?php

use ActiveRecord\Model;

class Category extends ActiveRecord\Model{
	static $table_name = 'Category';

	static $has_many = array(
		array('post_has_category','class_name'=>'Posthascategory'),
		array('post','class_name'=>'Post','through'=>'post_has_category')
	);
}

Posthascategory.php

<?php

use ActiveRecord\Model;

class Posthascategory extends ActiveRecord\Model{
	static $table_name = 'post_has_category';

	static $belongs_to = array(
			array('post','class_name'=>'Post'),
			array('category','class_name'=>'Category')
	);
}

Untuk di ketahui ketika Anda mulai membangun suatu aplikasi mengunakan PhpActiveRecord Anda tidak akan terlalu banyak menuliskan code pada bagian model karena PhpActiveRecord yang akan mengerjakannya seperti update, delete, mendapatkan id/key yang akan diubah maupun diupdate dll. Untuk lebih mengetahui bagaimana cara menggunakannya, Anda dapat membaca dokumentasi PhpActiveRecord. Kemudian untuk mencoba ketiga model tersebut silahkan membuat satu controller untuk mencobanya, seperti sampel code di bawah ini.

<?php

class test extends Controller {
	public function __construct(){
		parent::__construct();
	}

	public function index(){

	}

	public function add(){
		$post = new Post();
		$post->title = 'belajar phpactiverecord';
		$post->date = now();
		$post->save();
	}

	public function getAll(){
		$post = new Post();
		print_r($post->all());
	}

	public function addalltable){
		$post = new Post();

		$post ->title = 'belajar php';		
		$post->date = now();		
		$post->save();

		$cat = new Category();
		$cat->name = 'Malam minggu kelabu';
		$cat->date = now();
		$cat->save();

		$has = new Posthascategory();
		$has->post_id = $post->id;
		$has->category_id = $cat->id;
		$has->save();
	}

}

Sumber:http://www.phpactiverecord.org/

About Author

Tentang PHP Indonesia

PHP Indonesia adalah sebuah komunitas untuk semua orang yang mencintai PHP. Fokus utama kami adalah pemrograman menggunakan bahasa PHP, namun tidak menutup kemungkinan pembahasan yang mencakup keseluruhan LAMP stack. Topik bisa dari pemrograman PHP, penanganan memcached, optimasi database, konfigurasi server, tuning server web, application deployment, framework PHP, hosting pilihan dan sebagainya.

Petunjuk Penulisan

Berikut ini adalah beberapa petunjuk penulisan artikel. Petunjuk dibuat bukan untuk membatasi tetapi demi menjaga kualitas artikel yang terpublikasi di situs ini. Selain itu, keseragaman gaya bahasa dapat menjaga readibilitas (tingkat keterbacaan) sehingga pembaca akan lebih nyaman dalam membaca artikel di situs ini.