我是Kohana框架的新手。我正在嘗試在Kohana中使用ORM模塊。 我的印象是,我必須爲每個表格創建一個模型。 然後只有我可以通過這些模塊訪問表格。 這是正確的嗎?任何人都可以解釋關於在Kohana中使用ORM創建數據庫訪問模型的最佳實踐嗎?Kohana:我應該爲每個使用ORM的表創建模型嗎?
在此先感謝 Poomalairaj
我是Kohana框架的新手。我正在嘗試在Kohana中使用ORM模塊。 我的印象是,我必須爲每個表格創建一個模型。 然後只有我可以通過這些模塊訪問表格。 這是正確的嗎?任何人都可以解釋關於在Kohana中使用ORM創建數據庫訪問模型的最佳實踐嗎?Kohana:我應該爲每個使用ORM的表創建模型嗎?
在此先感謝 Poomalairaj
當我們談論的Kohana和ORM,是的,你很可能需要就是我們所說的實體,或將代表該表的典範。這是指定您的域名的最常用和推薦的方式。
請記住,Kohana模型的概念不符合一般概念。你可以擁有一個有點像商業邏輯實體的模型,它與數據庫沒有任何關係。
爲了舉例說明我的答案,如果你有一個簡單的應用後,如Twitter或什麼的,你有這樣的事情:
class Model_User extends ORM {
protected $_table_name = 'user';
protected $_primary_key = 'id';
protected $_has_many = array('posts' => array());
}
class Model_Post extends ORM {
protected $_table_name = 'post';
protected $_primary_key = 'id';
protected $_belongs_to = array('user' => array());
}
如果你創建你的模型像這樣的Kohana的ORM也會明白:
class Model_User extends ORM {
protected $_has_many = array('posts' => array());
}
class Model_Post extends ORM {
protected $_belongs_to = array('user' => array());
}
由於它的工作原理最通常與conventions over configurations.
隨着指定的域名,就可以訪問一些用戶帖子這樣:
$user->posts
和後用戶(作者)是這樣的:
$post->user
希望能澄清你的心!
您不必添加
protected $_primary_key = 'id';
每次添加模式,它是默認的關鍵,但如果你的關鍵是比「ID」等,你必須添加行,指定右鍵如「userId」。
一般而言,我認爲你應該問你需要什麼樣的表來實現你的模型。 – Matt 2012-03-13 10:55:34
只需要提示您不需要爲數據透視表創建模型,但如果除ID之外還沒有其他數據。 如果您擁有has_many_through關係,則只需爲兩個主表創建模型,而不是爲數據透視表創建模型。 – 2012-04-03 19:44:49