您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp5学习笔记-关联-一对一
发布时间:2018-06-14 21:39:28编辑:雪饮阅读()
一对一的关联模型:
一个用户只能有一个妻子,一个妻子也只能有一个对应的用户,这就是一对一关联模型.
(1)建立一个妻子模型如:wife.php
<?php
namespace app\index\model;
use think\Model;
class Wife extends Model{
}
?>
(2)用户模型中声名与妻子模型的一对一的关联:
//定义关联方法
public function wife(){
// 用户关联其妻子has one关联,一个用户只能有一个妻子
return $this->hasOne('wife','user_id','id');
}
(3)一对一关联模型数据获取:
$sUser=sUser::get(38);
echo $sUser->username."的妻子是:".$sUser->wife->username;
(4)一对一关联模型数据新增:
Db::startTrans();
$sUser=new sUser;
$sUser->username='雪饮大侠';
$sUser->psw=md5('dmj');
if($sUser->save()){
$wife['username']='杜敏捷';
$wife['age']=28;
$sUser->wife()->save($wife);
Db::commit();
return "恭喜新人{$sUser->username}、{$wife['username']}喜结连理";
}
else{
Db::rollback();
return $sUser->getError();
}
(5)一对一关联模型数据获取(多表联查)
$sUser=sUser::get(2026,'wife');
echo "用户:".$sUser->username." 妻子:".$sUser->wife->username;
(6)一对一关联模型数据更新
Db::startTrans();
$sUser=sUser::get(2026);
$sUser->username="雪饮";
$sUser->save();
//更新关联数据
$sUser->wife->username='柠檬不萌';
if($sUser->wife->save()){
Db::commit();
return "用户".$sUser->username."更新成功";
}
else{
Db::rollback();
return "用户".$sUser->username."更新失败";
}
(7)一对一关联模型数据删除
Db::startTrans();
$sUser=sUser::get(2027);
$sUser->delete();
//删除关联数据
if($sUser->wife->delete()){
Db::commit();
return "用户{$sUser->username}删除成功";
}
Db::rollback();
return "用户{$sUser->username}删除失败";
关键字词:thinkphp5,一对一