【问题标题】:Create uniqueID based on id mysql laravel 5根据id mysql laravel 5创建uniqueID
【发布时间】:2023-03-14 21:10:01
【问题描述】:

我想为列 transid 创建 uniqueID,例如自动增量。但我已经有一列 id(自动增量)。

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); 

我应该如何为此编写代码? 提前致谢。

【问题讨论】:

  • $transid = "01".str_pad($fund->id, 5, '0', STR_PAD_LEFT);在这段代码中写 echo $fund->id ;看看你得到了什么??
  • 我想你尝试同时插入 id n transid,那么你怎么能得到 $fund->id ...在插入一些值然后获取最后插入的 id n 然后添加 transid 。 ..我认为这是最好的方式
  • 我知道我正在尝试同时插入 id 和 transid,实际上这是我的问题。如果我得到最后插入的 id,tansid 的最后一个数字将与 id 不同,对吗? ......我不想那样做,我希望transid的最后一个数字与id具有相同的数字。
  • 不,transid n id 将是相同的,你要做的是首先插入所有数据连同 transid...然后立即获取插入的最后一个 id,然后仅更新 transid 或第一次插入除了transid之外的所有数据...然后获取insert的最后一个id,然后只更新transid

标签: php mysql laravel laravel-5


【解决方案1】:

试试这个,希望对你有帮助

$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);

你得到 00000012

【讨论】:

  • 每次提交时都会使用相同的 id 00000012。我想成为自动增量。
  • 是的,您需要从数据库中获取最后插入的 id,12 只是示例
  • 嗯,对不起,你能给我举个例子吗?因为我不知道如何更改 12 成为最后一个插入 ID
  • 只取最后插入的记录 id,nw 我编辑了我的 ans,Fund 是一个模型名称。
  • 哇,效果很好! .但最后一个数字是使用最后一个 id .. 嗯,如果使用相同的 id 怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 2015-12-04
  • 2017-01-23
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多