2017-01-21 1 views
0

У меня есть registration_id в формате KUTWJH210117001. В следующий раз, когда пользователь вводит сообщения registration_id я хочу, чтобы увеличить его KUTWJH210117002, , но я получаю выход как:Laravel 5.3 Инкремент 001 - 002 в коде

KUTWJH210117001 // the first time 
KUTWJH2101172 // next time it will be 
KUTWJH2101173 // and so on 

Кодекса

public function setRegistrationIdAttribute($rid) 
{ 
    $getLastRegistrationId = Driver::orderBy('id', 'desc')->first()->registration_id; 
    $getDateToCheck = substr($getLastRegistrationId , 6, 6); 

    if($getDateToCheck === date('dmy')) { 
     $toIncrement = substr($getLastRegistrationId, -1); 
     $increment = float($toIncrement++);      //i'm incrementing here 
     $this->attributes['registration_id'] = $rid.date('dmy').$increment; 
    } 
    else 
    { 
    $this->attributes['registration_id'] = $rid.date('dmy')."001"; 
    } 
} 

Спасибо

ответ

2

Использовать sprintf в формате:

$this->attributes['registration_id'] = $rid.date('dmy').sprintf("%03d", $increment); 

%03d - указывает, что вы форматируете 3-значное число. Таким образом, ноль будет автоматически заполняться.

2

Использование str_pad:

$increment = str_pad($increment, 3, '0', STR_PAD_LEFT); 
Смежные вопросы