Как установить добавочную длину идентификатора, как это 000001, 000002, - PullRequest
0 голосов
/ 20 октября 2019

Я хочу иметь инкрементный идентификатор с определенной длиной, такой как 0000001, 0000002, 0100000, ... Как мне установить это? Любая помощь будет приветствоваться.

public function up()
    {
        Schema::create('animals', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedBigInteger('user_id')->index();
            $table->date('dateOfBirth');
            $table->string('gender');
            $table->string('placeOfBirth');
            $table->timestamps();

            $table->foreign('user_id')->references('id')->on('users');
        });
    }

1 Ответ

1 голос
/ 20 октября 2019

Я оставлю автоинкремент как есть, иначе вам придется обрабатывать его вручную, что является болезненным.

Вы можете создать аксессор в вашей модели Animal, например:

protected $appends = ['code'];

public function getCodeAttribute()
{
    // use $this->attributes['id'] or try with $this->id
    return str_pad($this->attributes['id'], 6, "0", STR_PAD_LEFT);
}

Затем использовать его:

Animal::first()->code;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...