2012-03-13 57 views
2

我是Kohana框架的新手。我正在嘗試在Kohana中使用ORM模塊。 我的印象是,我必須爲每個表格創建一個模型。 然後只有我可以通過這些模塊訪問表格。 這是正確的嗎?任何人都可以解釋關於在Kohana中使用ORM創建數據庫訪問模型的最佳實踐嗎?Kohana:我應該爲每個使用ORM的表創建模型嗎?

在此先感謝 Poomalairaj

+1

一般而言,我認爲你應該問你需要什麼樣的表來實現你的模型。 – Matt 2012-03-13 10:55:34

+0

只需要提示您不需要爲數據透視表創建模型,但如果除ID之外還沒有其他數據。 如果您擁有has_many_through關係,則只需爲兩個主表創建模型,而不是爲數據透視表創建模型。 – 2012-04-03 19:44:49

回答

3

當我們談論的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 

希望能澄清你的心!

2

您不必添加

protected $_primary_key = 'id'; 

每次添加模式,它是默認的關鍵,但如果你的關鍵是比「ID」等,你必須添加行,指定右鍵如「userId」。

相關問題