tp5 save()儲存後,獲取自增ID,獲取關聯表中的某值
阿新 • • 發佈:2018-12-26
用過tp5的小夥伴們都知道用save方法新增資料返回的是寫入的記錄數。
但是專案中常常遇到在儲存成功資料後也要獲取這條資料的主鍵id,以方便存到其他表裡用作關聯需要,下面是程式碼示例:
//向user表中儲存一條資料 $data = [ 'username'=>'ceshi', 'password'=>'123', 'typeid'=>'1', ]; $result = model('User')->allowField(true)->validate('User.add')->save($data); //獲取自增ID(表主鍵) echo model('User')->uid;
此外,資料儲存成功後,還想要獲取關聯表中的某值,示例:
在user模型層寫入一對一關聯和獲取器:
//user表與type表一對一關聯,此處應以type表名來定義方法名
public function type(){
return $this->hasOne('type','typeid','typeid');
}
//獲取器
public function getTypenameAttr($value, $data){
return $this->type->typename;
}
在控制器層程式碼:
//向user表中儲存一條資料 $data = [ 'username'=>'ceshi', 'password'=>'123', 'typeid'=>'1', ]; $result = model('User')->allowField(true)->validate('User.add')->save($data); //獲取自增ID(表主鍵) echo model('User')->uid; //獲取關聯表中的某值 echo model('User')->typename;
獲取器的具體用法,請檢視我的博文:https://blog.csdn.net/weixin_43652106/article/details/84869338