1. 程式人生 > >Thinkphp資料模型一對多關聯和多對多關聯

Thinkphp資料模型一對多關聯和多對多關聯

HAS_MANY 關聯表示當前模型擁有多個子物件,例如每個使用者有多篇文章,我們可以這樣來定義

'Article' => array(     'mapping_type'  => self::HAS_MANY,     'class_name'    => 'Article',     'foreign_key'   => 'userId',     'mapping_name'  => 'articles',     'mapping_order' => 'create_time desc',     // 定義更多的關聯屬性     …… )

MANY_TO_MANY 關聯表示當前模型可以屬於多個物件,而父物件則可能包含有多個子物件,通常兩者之間需要一箇中間表類約束和關聯。例如每個使用者可以屬於多個組,每個組可以有多個使用者:

'Group' => array(     'mapping_type'      =>  self::MANY_TO_MANY,     'class_name'        =>  'Group',     'mapping_name'      =>  'groups',     'foreign_key'       =>  'userId',     'relation_foreign_key'  =>  'groupId',     'relation_table'    =>  'think_group_user' //此處應顯式定義中間表名稱,且不能使用C函式讀取表字首     )

由於效能問題,新版取消了自動關聯查詢機制,而統一使用relation方法進行關聯操作,relation方法不但可以啟用關聯還可以控制區域性關聯操作,實現了關聯操作一切盡在掌握之中。

文章來自 www.huthon.com