◇ 一對(duì)一關(guān)聯(lián) : ONE_TO_ONE , 包括 HAS_ONE 和 BELONGS_TO ◇ 一對(duì)多關(guān)聯(lián) : ONE_TO_MANY , 包括 HAS_MANY 和 BELONGS_TO ◇ 多對(duì)多關(guān)聯(lián) : MANY_TO_MANY

關(guān)聯(lián)定義

數(shù)據(jù)表的關(guān)聯(lián) " /> 欧美在线观看www,在线观着免费观看国产黄,手机看片一区

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ThinkPHP關(guān)聯(lián)模型操作實(shí)例分析

通常我們所說的關(guān)聯(lián)關(guān)系包括下面三種:

◇ 一對(duì)一關(guān)聯(lián) : ONE_TO_ONE , 包括 HAS_ONE 和 BELONGS_TO
◇ 一對(duì)多關(guān)聯(lián) : ONE_TO_MANY , 包括 HAS_MANY 和 BELONGS_TO
◇ 多對(duì)多關(guān)聯(lián) : MANY_TO_MANY

關(guān)聯(lián)定義

數(shù)據(jù)表的關(guān)聯(lián) CURD 操作,目前支持的關(guān)聯(lián)關(guān)系包括下面四種:HAS_ONE 、 BELONGS_TO 、 HAS_MANY 、 MANY_TO_MANY 。

一個(gè)模型根據(jù)業(yè)務(wù)模型的復(fù)雜程度可以同時(shí)定義多個(gè)關(guān)聯(lián),不受限制,所有的關(guān)聯(lián)定義都統(tǒng)一在模型類的 $_link 成員變量里面定義,并且可以支持動(dòng)態(tài)定義。要支持關(guān)聯(lián)操作,模型類必須繼承 RelationModel 類,關(guān)聯(lián)定義的格式是:
復(fù)制代碼 代碼如下:
protected $_link = array(
' 關(guān)聯(lián) 1' => array(
' 關(guān)聯(lián)屬性 1' => ' 定義 ',
' 關(guān)聯(lián)屬性 N' => ' 定義 ',
),
' 關(guān)聯(lián) 2' => array(
' 關(guān)聯(lián)屬性 1' => ' 定義 ',
' 關(guān)聯(lián)屬性 N' => ' 定義 ',
),
...
);

HAS_ONE 關(guān)聯(lián)方式的定義:
復(fù)制代碼 代碼如下:
class UserModel extends RelationModel
{
public $_link = array(
'Profile'=> array(
'mapping_type' =>HAS_ONE,
'class_name'=>'Profile',
// 定義更多的關(guān)聯(lián)屬性
……
) ,
);
}

mapping_type 關(guān)聯(lián)類型,這個(gè)在 HAS_ONE 關(guān)聯(lián)里面必須使用 HAS_ONE 常量定義。
class_name 要關(guān)聯(lián)的模型類名
mapping_name 關(guān)聯(lián)的映射名稱,用于獲取數(shù)據(jù)用
foreign_key 關(guān)聯(lián)的外鍵名稱
condition 關(guān)聯(lián)條件
mapping_fields 關(guān)聯(lián)要查詢的字段
as_fields 直接把關(guān)聯(lián)的字段值映射成數(shù)據(jù)對(duì)象中的某個(gè)字段

BELONGS_TO 關(guān)聯(lián)方式的定義:
復(fù)制代碼 代碼如下:
'Dept'=> array(
'mapping_type'=>BELONGS_TO,
'class_name'=>'Dept',
'foreign_key'=>'userId',
'mapping_name'=>'dept',
// 定義更多的關(guān)聯(lián)屬性
……
) ,

class_name 要關(guān)聯(lián)的模型類名
mapping_name 關(guān)聯(lián)的映射名稱,用于獲取數(shù)據(jù)用
foreign_key 關(guān)聯(lián)的外鍵名稱
mapping_fields 關(guān)聯(lián)要查詢的字段
condition 關(guān)聯(lián)條件
parent_key 自引用關(guān)聯(lián)的關(guān)聯(lián)字段
as_fields 直接把關(guān)聯(lián)的字段值映射成數(shù)據(jù)對(duì)象中的某個(gè)字段

HAS_MANY 關(guān)聯(lián)方式的定義:
復(fù)制代碼 代碼如下:
'Article'=> array(
'mapping_type' =>HAS_MANY,
'class_name'=>'Article',
'foreign_key'=>'userId',
'mapping_name'=>'articles',
'mapping_order'=>'create_time desc',
// 定義更多的關(guān)聯(lián)屬性
……
) ,

class_name 要關(guān)聯(lián)的模型類名
mapping_name 關(guān)聯(lián)的映射名稱,用于獲取數(shù)據(jù)用
foreign_key 關(guān)聯(lián)的外鍵名稱
parent_key 自引用關(guān)聯(lián)的關(guān)聯(lián)字段
condition 關(guān)聯(lián)條件
mapping_fields 關(guān)聯(lián)要查詢的字段
mapping_limit 關(guān)聯(lián)要返回的記錄數(shù)目
mapping_order 關(guān)聯(lián)查詢的排序

MANY_TO_MANY 關(guān)聯(lián)方式的定義:
復(fù)制代碼 代碼如下:
"Group"=>array(
'mapping_type'=>MANY_TO_MANY,
'class_name'=>'Group',
'mapping_name'=>'groups',
'foreign_key'=>'userId',
'relation_foreign_key'=>'goupId',
'relation_table'=>'think_gourpUser'
)

class_name 要關(guān)聯(lián)的模型類名
mapping_name 關(guān)聯(lián)的映射名稱,用于獲取數(shù)據(jù)用
foreign_key 關(guān)聯(lián)的外鍵名稱
relation_foreign_key 關(guān)聯(lián)表的外鍵名稱
mapping_limit 關(guān)聯(lián)要返回的記錄數(shù)目
mapping_order 關(guān)聯(lián)查詢的排序
relation_table 多對(duì)多的中間關(guān)聯(lián)表名稱

關(guān)聯(lián)查詢

使用 relation 方法進(jìn)行關(guān)聯(lián)操作, relation 方法不但可以啟用關(guān)聯(lián)還可以控制局部關(guān)聯(lián)操作,實(shí)現(xiàn)了關(guān)聯(lián)操作一切盡在掌握之中。

$User = D( "User" );
$user = $User->realtion(true)->find(1);

輸出 $user 結(jié)果可能是類似于下面的數(shù)據(jù):
復(fù)制代碼 代碼如下:
array(
'id'=>1,
'account'=>'Thinkphp',
'password'=>'123456',
'Profile'=> array(
'email'=>'liu21st@gmail.com',
'nickname'=>'流年',
) ,
)

關(guān)聯(lián)寫入
復(fù)制代碼 代碼如下:
$User = D( "User" );
$data = array();
$data["account"]="Thinkphp";
$data["password"]="123456";
$data["Profile"]=array(
'email'=>'liu21st@gmail.com',
'nickname' =>' 流年 ',
) ;
$result = $User->relation(true)->add($user);

這樣就會(huì)自動(dòng)寫入關(guān)聯(lián)的 Profile 數(shù)據(jù)。

關(guān)聯(lián)更新
復(fù)制代碼 代碼如下:
$User = D( "User" );
$data["account"]= "Thinkphp";
$data["password"]= "123456";
$data["Profile"]=array(
'email'=>'liu21st@gmail.com',
'nickname' =>' 流年 ',
) ;
$result =$User-> relation(true)->where(‘id=3')->save($data);

關(guān)聯(lián)刪除

$result =$User->relation(true)->delete( "3" );

php技術(shù)ThinkPHP關(guān)聯(lián)模型操作實(shí)例分析,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 很黄很色视频 | 色婷婷丁香六月 | 四虎伊人 | 一区视频在线 | 美女黄网 | 国产午夜免费视频片夜色 | 成人久久网站 | 二区视频 | 五月天色婷婷综合 | 日韩视频在线观看一区 | 午夜在线观看视频 | 欧美视频福利 | 大香网伊人久久综合网2020 | 亚洲天堂婷婷 | 婷婷激情在线视频 | 一级特黄欧美 | 久久国产欧美日韩高清专区 | 久久久久久一级毛片免费野外 | 5566夜色| 深夜啪啪网站 | 天天躁天天弄天天爱 | 天天爽天天 | 国产伦精品一区二区三区女 | 成人免费网站视频 | 国产精品hd | 国产小视频在线高清播放 | 国产成+人+综合+亚洲不卡 | 五月婷婷深爱五月 | 97国产精品人人爽人人做 | 国产精品国产 | 天天久久狠狠伊人第一麻豆 | 中文字幕日本不卡一二三区 | 日本免费一区二区三区看片 | 91人碰| 色多多福利网站 | 久久久久久久亚洲精品 | 欧美成人免费一级人片 | 久久久亚洲精品蜜桃臀 | 男人猛桶女人下面视频国产 | 国产在线一区二区三区在线 | 99精品国产成人一区二区 |