One minute
Kohana ORM Tips
Kalo kita pernah baca manual kohana, terus kita liat ke bagian ORM, di sana ada contoh seperti berikut:
$user->add(ORM::factory('role', 'admin'));
nah, ORM::factory('role', 'admin')
, mestinya kalo kita coba itu gak
bisa ya, karena ORM akan mencoba untuk mencari berdasarkan unique_field
nya (pada contoh sebelumnya, field id adalah unique).
Nah skr, gw akan coba trik ini.
Pada table posts yang lalu, kita coba tambahin field slug
, sehingga
tabelnya menjadi:
id | title | status_id | slug |
---|---|---|---|
1 | title #1 | 3 | title-1 |
2 | title #2 | 1 | title-2 |
3 | title #2 | 2 | title-3 |
Tentu dengan mudah kita bisa membuat title-1
dan yang lainnya
menggunakan helper url::title()
, tapi sebagai catatan, field slug ini
harus unique juga, sebagaimana field id.
Kemudian, pada Post_Model
class, kita tambah sebuah method:
// models/post.php
class PostModel extends ORM
{
...
public function uniquekey($id)
{
if (!empty($id) AND isstring($id) AND !ctypedigit($id))
{
return 'slug';
}
return parent::uniquekey($id);
}
...
}
perhatikan baik, nilai yang dikembalikan pada fungsi unique_key
adalah
slug
(nama field yang barusan kita tambah di table posts).
public function blog($slug)
{
$post = ORM::factory('post', $slug);
}
Sekarang kita bisa menggunakan slug
ini sebagai id atau juga sebagai
url. misal kalo di blog gw ini menjadi blog/kohana-orm-2.php