【问题标题】:How to insert row number in database in Laravel如何在 Laravel 的数据库中插入行号
【发布时间】:2020-04-25 05:19:04
【问题描述】:

我试图通过控制器在表中插入 ROW NUMBER 但失败了, 我尝试过类似的方法,但显示错误,

$data = array(
            'name'=>$request->name, 'email'=>$request->email, 'password'=>$password, 'status'=>1, 'user_id' =>ROW_NUMBER()
        );

我只想在user_id 中插入 ROW NUMBER 表。 另外,如果不可能,我们可以在user_id 中插入唯一的序列号

请帮帮我。

【问题讨论】:

  • user_id 字段中您要插入特殊Userid。对???
  • 我只想在里面插入一个唯一的id,
  • 在 DB 的所有表中是字段名称 idprimary keyAuto increment 这意味着它在此表中是唯一的,在 Users_tbl 中您有 id 字段,如果你想用它(因为你写了user_id)你可以用idUser_tbl 那是独一无二的
  • 我的表中已经有了带有 AUTO INCREMENT 和 PRIMARY KEY 的 'id' 字段。我还有另一个字段,即“user_id”,我只想在其中添加唯一的 ID。可以是行号或序列号
  • 所以你可以使用count($your_model_tbl::all()),就像RowNumber

标签: mysql laravel


【解决方案1】:

每一行都有一个名为“id”的列唯一自动递增

您可以将 'id' 值传递给 'user_id',如下所示:(但这不是一个好主意)

为什么这是个坏主意?

因为当您删除最后一行时(假设 id 为 5),您的下一条记录“id”为 6,但您将使用以下代码检索的 user_id 将是5。 因此,请使用我将在下面为您提供的替代选项。

$last_user = User::orderBy('created_at', 'desc')->first();
$new_user = new User;
...
$new_user->user_id = $last_user->id + 1 ;
$new_user->save(); 

我从 cmets 发现您需要一个唯一的 id,这是您解决此问题的想法。 我有一个更好的主意,希望对你有所帮助。

你可以使用uniqid()方法。

$new_user = new User;
...
$new_user->user_id = uniqid();
$new_user->save(); 

【讨论】:

    猜你喜欢
    • 2018-05-18
    • 2016-03-19
    • 2022-08-11
    • 2014-06-16
    • 2020-05-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多