我正在为我的学校作业做一个非常简单的项目。所以这是一个房屋租赁网站。一切看起来都很好,但我想创建一个像“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 很陌生,所以有人可以帮助以最简单的方式解决我的问题吗?
如果您使用数据库,则可以使用 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
我也在研究这个,但是对于带有前缀的数字,如果不是多租户系统,前缀可以像您所做的那样进行硬编码,或者从config文件中读取。然而,在大多数事务数据库引擎(例如 MariaDb 的 InnoDb)中,您无法可靠地依赖自动增量值,因为它们倾向于跳过序列。
我正在考虑创建一个 config-table 以及 serial-lookup 表。最后一个将被“选择更新”,以保持查找和增量的完整性。