如何在Laravel / PHP中自动生成自定义格式编号?

时间:2020-01-30 09:09:15

标签: php laravel

我想在Laravel中创建新表格时自动生成自定义格式编号。保存并重新打开新表格后,数字将增加或更改。

格式可能是这样的:2020-01-30 08:07:37.581 20275-20275/com.example.mhtapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.mhtapplication, PID: 20275 java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference at com.example.mhtapplication.Questions.onlick(Questions.java:103) 。因此,<EditText android:id="@+id/textView16" android:layout_width="384dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="12dp" android:text="" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView13" /> 将是要增加的数字,001/ACME/01/2020/MJ是静态的(公司名称),001是当前月份,ACME是当前年份,{{ 1}}是用户登录的首字母。

所以,任何帮助都会感激大家。谢谢。

1 个答案:

答案 0 :(得分:0)

注意:您好,如果“ 001”是表的主键,则在添加新实例时它将递增,但是如果不是主键,而只是手动添加的表中的一列,则需要获取表格的最后一项。 / p>

获取最后的表格编号

$form_number = App\Form::orderBy('form_number', 'desc')->first()->form_number;

然后您可以在FormController@formCode模型中创建文本形式。

public function formCode($form_number, $company) {
    return $form_number."/{$company}/".now()->month."/".now()->year."/".auth()->user()->shortcode
}

最后,您可以在App\User模型中为用户名的短代码创建一个属性

public function getShortcodeAttribute() {
    return \Illuminate\Support\Str::substr($this->first_name, '1', '1').\Illuminate\Support\Str::substr($this->last_name, '1', '1');
}