2016-09-21 73 views
0

我想創建uniqueID作爲自動增量列transid。但我已經有一列id(autoincrement)。基於id創建uniqueID mysql laravel 5

TRANSID應該是01000001和自動增量,或按照列ID號。

這裏是我的代碼

public function insertFund($request,$lender, $ftype, $sign) 
{ 
    $fmamt = str_replace(".","",$request->fmamt); 
    $fdesc = $request->fdesc; 
    $fdate = $request->fdate; 
    $trnsfer = $request->file('upload_trnsfer');   
    $transid = "01".str_pad($fund->id, 5, '0', STR_PAD_LEFT); 

    if($fdesc == null) 
    { 
     $fdesc = ''; 
    } 
    $fund = $this->fund->create([ 
     'lender_id' => $lender->id, 
     'transid' => $transid, 
     'fmamt' => $fmamt, 
     'refdc' => '', 
     'ftype' => $ftype, 
     'sign' => $sign, 
     'fdesc' => $fdesc, 
     'fdate' => $fdate, 
     'fstat' => 'pending' 
    ]); 
    return $fund; 
} 

我認爲,核心問題就在這裏。

$transid = "01".str_pad($fund->id, 5, '0', STR_PAD_LEFT); 

我該如何編寫代碼? 在此先感謝。

+0

$ TRANSID = 「01」 .str_pad($賠償基金撥款─> ID,5 ,'0',STR_PAD_LEFT);在這段代碼中寫echo $ fund-> id;看看你有什麼? – Borna

+0

我想你試着插入id n transid在同一時間,那麼你將如何得到$ fund-> id ...在插入somevalue之前,然後得到最後插入的id n然後添加transid ...我認爲它的bettr方式 – Borna

+0

我知道我嘗試在同一時間插入id和transid,實際上這是我的問題。如果我得到最後插入的id,tansid的最後一個數字會與id不同? ......我不想那麼做,我希望transid的最後一個數字與id有相同的數字。 –

回答

0

試試這個,希望這有助於你

$temp_str = '00000000'; 

最後插入的ID

$obj_fund = Fund::get()->last(); 
$last_inserted_id = $obj_fund->id; 

$temp_index = $last_inserted_id + 1;  
$id_length = strlen($temp_index); 
$temp_id = substr_replace($temp_str, $last_inserted_id, -$id_length); 

的GET 00000012

+0

它將在每次提交中都是相同的ID 00000012。我想成爲自動增量。 –

+0

是的,你需要從數據庫中取出最後一個插入的ID,12只是示例 – Komal

+0

嗯對不起,你能給我一個例子嗎?因爲我不知道如何改變12成爲最後插入編號 –