thinkphp _before_write _before_insert _before_update _after_insert 的用法

310 阅读1分钟
//插入或更新都会执行
protected function _before_write(&$data){
	if($data['user_birthday']){
		$data['user_constellation']=\birthday2constellation($data['user_birthday']);//生日转星座
		$data['user_animal']=\birthday2animal($data['user_birthday']);	//生日转属相
	}
}
//仅插入时执行
protected function _before_write(&$data,$options){
	if($data['user_birthday']){
		$data['user_constellation']=\birthday2constellation($data['user_birthday']);
		$data['user_animal']=\birthday2animal($data['user_birthday']);
	}
}
//仅更新时执行
protected function _before_write(&$data,$options){
	if($data['user_birthday']){
		$data['user_constellation']=\birthday2constellation($data['user_birthday']);
		$data['user_animal']=\birthday2animal($data['user_birthday']);
	}
}
//插入后执行
protected function _after_insert($data,$options){
	$updateData=[];
	$updateData['user_no']='520'.\str_pad($data['user_id'],5,0,\STR_PAD_LEFT);
	$this
		->where(['user_id'=>$data['user_id']])
		->save($updateData);
	// update `user` set user_no=concat('520',lpad(user_id,5,'0'))
}