首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5.2中发票编号的自动生成

问Laravel 5.2中发票编号的自动生成
EN

Stack Overflow用户
提问于 2016-07-24 01:41:06
回答 2查看 7.1K关注 0票数 0

我正在使用laravel 5.2构建发票应用程序

我想创建自动发票编号递增。意思是,

如果我打开创建发票页面,我应该自动得到#0001,所以当我保存发票时,在我的invoice_number字段下它将是0001,然后当我创建另一个发票时,控制器将检查数据库中的最后一个invoice_number,并自动给我#0002。

有没有关于如何做到这一点或类似的想法??

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-24 01:50:07

按降序从db中获取最后一条记录。

代码语言:javascript
复制
$invoice = new Invoice();

$lastInvoiceID = $invoice->orderBy('id', DESC)->pluck('id')->first();
$newInvoiceID = $lastInvoiceID + 1;

这将返回最后一个ID。然后将其加1,并将其显示在前端{{ $newInvoiceID }}上。

可能的问题:如果两个用户同时创建发票怎么办?保存后,如果发票编号是唯一标识符,则编号将不同。

一种选择是为每个用户创建发票。

代码语言:javascript
复制
$invoice = new Invoice();

$lastInvoiceID = $invoice->where('user_id', '=', Auth::user()->id)->orderBy('invoice_id', DESC)->pluck('invoice_id')->first();
$newInvoiceID = $lastInvoiceID + 1;
票数 3
EN

Stack Overflow用户

发布于 2016-07-24 01:52:18

自动递增MySQL表中的invoice_number字段(或仅使用'ID‘作为invoice_number:

代码语言:javascript
复制
CREATE TABLE invoices (
    ID int NOT NULL AUTO_INCREMENT,
    invoice_number NOT NULL AUTO_INCREMENT
)

每次向表中添加发票时,MySQL都会自动为其分配下一个编号。因此,如果表中的最后一张发票是3,那么您插入的下一张发票将被分配为4。

如果想要显示#0003和#0004这样的数字,只需查询数据库中的invoice_number并将数字格式化即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38544748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档