2016-09-21 28 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成为最后插入编号 –