One minute
Relation has_one dengan Jelly ORM
Kita telah belajar membuat class untuk Model_Post di postingan
sebelumnya, sekarang kita mau belajar membuat relasi has_one dengan
Jelly.
Oh ya.. contoh2 berikut ini adalah migrasi dari ORM yang udah gw post sebelumnya.
has_one, post has_one status
kita tulis untuk Model_Status
// classes/model/status.php
class Model_Status extends Jelly_Model {
public static function initialize(Jelly_Meta $meta) {
$meta
->fields(array(
'id' => new Field_Primary,
'name' => new Field_String(array(
'unique' => true,
))
));
}
}
lalu untuk Model_Post, mirip sepertya yang sebelumnya, hanya saja ada
yg berubah.
// classes/model/post
class Model_Post extends Jelly_Model
{
public static function initialize(Jelly_Meta $meta)
{
$meta->fields(array(
'id' => new Field_Primary,
'title' => new Field_String,
'status' => new Field_HasOne,
));
}
}
Relasi has_one dibentuk saat kita initialisasi.
Kita lihat statement 'status' => new Field_HasOne. status adalah
alias, bukan nama field, begitu juga dengan id dan title. Jelly
melihat jenis fieldnya, karena Field_HasOne maka Jelly akan merujuk ke
Model_Status, dan secara default, akan dianggap menggunakan field:
alias_id, berarti pada table posts harus ada status_id, dan id pada
table statuses.
Sekarang post sudah mempunyai relasi has_one.
$post = Jelly::factory('post');
$post->title:'new Title';
$post->status = Jelly::factory('status', 1);
$post->save();
Jelly ORM Kohana 3 Kohana 3.2 Tutorial
185 Words
2010-11-13 18:48 (Last updated: 2024-03-15 13:30)
39e3e69 @ 2024-03-15