生成带前缀的自动递增数字 Laravel

Generate The Auto Incrementig Number With Prefix Laravel

我有 table 命名为 product.The 产品 table 由产品代码字段组成 在添加产品时,我需要按产品代码字段的顺序将代码生成为 PRO-1、PRO-2、PRO-3,并且必须以

形式加载

我已经在我的产品模型中创建了函数并成功完成了这个

public static function generateSeriesNumberWithPrefix($tableName = '', $autogenField = '', $autogenStart = '', $autogenPrefix = '')
    {
        $listFiledValues = DB::table($tableName)->select($autogenField)->get();
        if ($listFiledValues->isEmpty())
        {
            $generatedAutogen = $autogenPrefix.$autogenStart;
            return $generatedAutogen;
        }
        elseif ($listFiledValues->isNotEmpty())
        {
            foreach($listFiledValues as $listFiledValue)
            {
                $eachListarray = $listFiledValue->$autogenField;
                $totalListArrays[] = $eachListarray;
            }
            foreach($totalListArrays as $totalListArray)
            {
                $stringRemovedEachListArray = substr($totalListArray,strlen($autogenPrefix));
                $stringRemovedTotalListArray[] = $stringRemovedEachListArray;
            }
            $maximumValue = max($stringRemovedTotalListArray);
            $generatedAutogen = $autogenPrefix.++$maximumValue;
            return $generatedAutogen;
        }
    }

最后在创建函数中

public function create ()
    {
    $autogen = Product::generateSeriesNumberWithPrefix('product','autogen','1','PRO-');
    return view('product.formadd', compact('result','sequence'));           
    }

我正在使用 Laravel 表单生成器 所以

{!! Form::text('productcode', $autogen, null, ['class' => 'form-group']) !!}

这里generateSeriesNumberWithPrefix是函数名,Product is a Model Name

此函数的主要优点是它不依赖于其他字段,例如 created_atprimary key 中的最大值,它是独立函数