Kohana ORM 規則詳解

2021-05-22 06:04:28 字數 1367 閱讀 4565

orm 約定

kohana orm 類遵循以下幾個條件。大多數的條件都是由 orm 的效能所決定的:

表名是複數形式,例如:users (設定 $table_names_plural 為 false 可以重寫)

模型的名字是表名的單數形式(例如:user)並加上 _model 字尾。例如:user_model (在模型中重新設定 $table_name可以覆蓋父類)。

每乙個表的主鍵名為 id 的自動增加 (在模型中重新設定 $primary_key可以覆蓋父類)。

外來鍵應該以 'modelname_id' 的方式被命名 (例如:user_id))

多對多關係表名應使用父表的名稱按英文本母順序在形式 table1_tabl2。舉個例子:如果有 users 和 roles 兩個多對多的關係表,連線表就應該命名為 roles_users。

建立 orm 模型

使用 orm,首先你必須建立乙個繼承orm的模型。每個模型代表乙個資料庫表,每乙個物件所產生的模型代表那個表的乙個欄位或多個字段。乙個模型為每個表的關係部分建立(不包括資料透視表)。

建立 orm 模型的語法:

class user_model extends orm {}在 orm 模型定義關係模型

理解關係模型對使用 orm 是必不可少的,就像正確的定義模型之間的關係使得 orm 類得以正常執行。在定義關係之前,記錄當前的資料庫模型(document your current database model)以對錶之間(一對一,一對多,多對多)的關係得到明確的認識是乙個不錯的選擇。如果您的資料庫是有文件記錄,這對於定義 orm 模型之間的關係是非常容易的。

orm 類支援下列關係模型:

has_one

has_one 關係允許在兩個模型定義一對一的關係模型。例如,一篇日誌有乙個作者(user),外來鍵 user_id 應該定義在 blog_posts 表中。

class blog_post_model extends orm 現在我可以通過下面的方式從日誌提取使用者名稱:

注意: 在子類定義 belongs_to 關係是可選的。如果需要在父類模型查詢資訊,只需要關聯當前子類模型。

class blog_post_model extends orm class category_model extends orm 就像 has_many 關係一樣獲得資料:

$post = orm::factory('blog_post', 1);

foreach ($post->categories as $category)

下面是乙個很好的例子,搜尋所有的日誌屬於哪乙個分類:

$category = orm::factory('category', 1);

foreach ($category->blog_posts as $post)

pacemaker規則詳解

譯文原 為 如果最外層的約束規則求值結果為false,集群則會視為該規則無效。當最外層的約束規則計算為true時,與規則相關聯的資源的分數將會被更新,並選擇資源在哪個節點執行。如果上面的解釋你聽起來很熟悉,那是應為你已經使用了乙個相對比較簡單的規則語法來建立約束規則了。例子 防止myapachers...

Linux iptables規則詳解

filter input drop 345 43237 forward accept 0 0 output accept 306 41346 ainput p tcp m tcp dport 10022 j accept ainput p tcp m tcp dport 80 j accept ai...

const規則詳解

總說const c語言當中,關鍵字const是用來定義變數,加了const修飾的變數,它的值只能讀,不能寫。也就是說const修飾的變數是乙個唯讀變數。在使用const 修飾變數時,它有以下的特點 1 資料型別對於const而言是透明的 2 const用於封鎖直接修飾的內容,將該內容變為唯讀 3 許...