使用 Laravel 自动生成发票

问题描述 投票:0回答:2

我正在为我的学校作业做一个非常简单的项目。所以这是一个房屋租赁网站。一切看起来都很好,但我想创建一个像“INV0001”这样的自动发票,但我不知道该怎么做。也许你们可以帮我修理我的控制器

这是我的控制器

public function storeSewa(Request $request){
  if ($request->edit=='false') {
  $newdata = new Sewa;
  } else {
  $newdata = Sewa::find($request->id);
  if ($newdata) {
  //
  }else {
  $newdata = new Sewa;}}
  $newdata->invoice = 'INV/'//idk, how?
  $newdata->penyewa_id = $request->penyewa_id;
  $newdata->kamar_id = $request->kamar_id;
  $newdata->tanggal_masuk = $request->tanggal_masuk;
  $newdata->tanggal_keluar = $request->tanggal_keluar;
  $newdata->durasi = $request->durasi;
  $newdata->status = 'Belum Lunas';

  $newdata->save();
  if ($newdata) {
  session()->flash('status', 'Task was successful!');
  session()->flash('type', 'success');
  return Redirect::route('account');
 }
 return 'false';
 }

嗯,我对 Laravel 很陌生,所以有人可以帮助以最简单的方式解决我的问题吗?

php laravel random invoice auto-generate
2个回答
1
投票

如果您使用数据库,则可以使用 sql 自动增量,对于此功能,您必须在发票模型迁移中包含此行:

Schema::create('invoices', function (Blueprint $table) {
            $table->Increments('id');
        });

如果您想要发票号码,而不是像 1,2,3, ... 您可以使用这样的库:

https://github.com/oanhnn/laravel-fakeid

如果您用于测试,可以使用 faker 工厂: 这里有一个教程:

https://www.codermen.com/blog/75/how-to-use-faker-with-laravel-5-7-tutorial


0
投票

我也在研究这个,但是对于带有前缀的数字,如果不是多租户系统,前缀可以像您所做的那样进行硬编码,或者从config文件中读取。然而,在大多数事务数据库引擎(例如 MariaDb 的 InnoDb)中,您无法可靠地依赖自动增量值,因为它们倾向于跳过序列。

我正在考虑创建一个 config-table 以及 serial-lookup 表。最后一个将被“选择更新”,以保持查找和增量的完整性。

© www.soinside.com 2019 - 2024. All rights reserved.