2016-09-21 11 views
0

の一意IDを作成するには、自動インクリメントのように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($ fund-> ID、5を挿入し、このヘルプ・ホープ、これを試してみてください、 '0'、STR_PAD_LEFT);このコードでは、echo $ fund-> id;を書きます。あなたは何を持って参照してください? – Borna

+0

私はあなたと同じ時刻にid n transidを挿入しようとしていると思いますが、どうすれば$ fund-> idを得ることができますか?somevalueを挿入する前に最後に挿入したIDを取得してからtransidを追加します...私はそのbettr way – 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最後のインサートIDになる –

関連する問題