根据id值,自动生成编号、编码等

sadwind2022-06-13笔记434

某项目在新增数据时,需要一个编码如:XXXX0001 格式。设想每次添加时,根据id的最大值加1,然后拼接成此形式的字符。

当时这方法不是太好,只是一个思路,因为如果多人同时添加,会造成该字段重复。

一,获取id最大值,以id 倒序排序最一条记录,即得到当前表最大id值,然后给它+1:

$formData = $this->modelClass->order('id', 'desc')->find();
$maxid = $formData['id'] +1;

二,拼接"XXXX"+maxid成XXXX0001,要用到str_pad()函数,用法如下:

str_pad(string,length,pad_string,pad_type) 
//参数    描述 
string      //必需。规定要填充的字符串。
length      //必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
pad_string  //可选。规定供填充使用的字符串。默认是空白。 
pad_type    //可选。规定填充字符串的哪边。 
//可能的值:
STR_PAD_BOTH - //填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。 
STR_PAD_LEFT - //填充字符串的左侧。
STR_PAD_RIGHT - //填充字符串的右侧。默认。
//拼接这样写:
$code = 'XXXX'.str_pad($maxid ,4,"0",STR_PAD_LEFT);
//如id的最大值为1,则$code 值:XXXX0002


relate content

VUE学习:一.开发工具

VUE学习:一.开发工具

前言了解前端项目开发中环境的相关配置,工具的相关使用技巧等,有助于快速解决开发时遇到的各种问题,提高开发效率#1.Node.js注意实际开发中团队中 node 版本最好保持一致,包括各种环境(dev、...

宝塔面板/NGINX 部署TP6/FUNADMIN出现的问题

都是在本地开发、调试好,上传到服务器上,也建了同名的数据库,但是访问出现一系列问题:1,提示数据库没有权限:如这样的错误:SQLSTATE[HY000] [1044] Access denied fo...

新的启程:得想点办法 好点子

因为个人原因,想做个网站,利用空余时间,网上收集整理一些资源,放些广告赚点小钱,目前看来很难实现了。申请了好多次广告联盟,都被拒绝了,大概理由就是网站流量不够,内容不多,原创内容少,仔细一想,这还是很...

JS/JQUERY 动态修改样式CSS

    $(".layui-table-box").css("border-width","0px"...

MYSQL 更新记录 搜索替换字符串

UPDATE icms_article_data     SET body = REPLACE(  &nb...

FASTADMIN 个别页面不使用默认的layout(默认模板)

有的应用定义了默认模板layout,(protected $layout = 'default';)在方法实现时会自动加上定义的模板内容,而个别页面如弹窗我不想要页面头部和底部等&nb...

Post Reply    

◎Welcome to participate in the discussion.