1. 程式人生 > >tp5 save()儲存後,獲取自增ID,獲取關聯表中的某值

tp5 save()儲存後,獲取自增ID,獲取關聯表中的某值

用過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