php - Laravel 6 - 唯一的自定义 ID 在表变空后不会增加

标签 php laravel laravel-6

现状

我有自定义的唯一增量,使代码看起来像这样

enter image description here

但是当我将该表清空并添加新值时,它看起来像这样

enter image description here

预期情况

将表格清空并进行新输入后,custom_id 应遵循 id

enter image description here

模型

    class Transaction_in extends Model
    {
        protected $table = 'transaction_ins';
        protected $primaryKey = 'idTransactionsIN';
        public $timestamps = true;
        public $incrementing = false;
        protected $guarded = [];

    public static function getidTransactionsIN(){
        DB::table('transaction_ins')->orderBy('id','desc')->take(1)->get();
    }
}

Controller

public function store(Request $request)
{
    $request->validate([
        'transaction_in_date' => 'required',
    ]);

    Transaction_in::getidTransactionsIN();

    $newtransaction_inId = Transaction_in::max('id') + 1;
    $Getnewtransaction_inId = sprintf('TIN%04d', $newtransaction_inId);

    $transaction_in = new Transaction_in();
    $transaction_in->idTransactionIN = $Getnewtransaction_inId;
    $transaction_in->date = $request->input('transaction_in_date');
    $transaction_in->save();
}

最佳答案

您可以在创建模型后设置custom_id,这样在操作较多的情况下会更安全:

public function store(Request $request)
{
    $request->validate([
        'transaction_in_date' => 'required',
    ]);


    $transaction_in = Transaction_in::create(['date' => $request->input('transaction_in_date')]);

    $transaction_in->update(['custom_id' => sprintf('TIN%04d', $transaction_in->id)]);
}

您还应该以防万一将其包裹在 database transaction 中.

关于php - Laravel 6 - 唯一的自定义 ID 在表变空后不会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58472297/

相关文章:

javascript - 将输入值传递给 Laravel 下的 javascript

运行主管队列时,Php-worker 在内存中不断增长

php - 如何在 Laravel Blade 中将多个子行数据与父行一起添加

php - 我应该如何设计 PHP 上传和调整图像大小脚本才能最好地捕获和报告错误

php - 为什么 ArrayIterator 子类的构造函数从未被调用?

laravel - 如何在没有 webpack 的情况下使用 laravel echo

laravel-6 - 更改 Laravel 迁移中的日期格式

php - 类 App\Http\Controllers\ManagerLoginController 不存在

javascript - 根据javascript中数据库表中的行数绘制点

php - getLoginUrl 随机不工作