当前位置: 首页 > 知识库问答 >
问题:

在Laravel中获取上次插入id的记录到数据库[重复]

关飞翔
2023-03-14

我是Laravel的初学者。我在我的项目中使用Laravel5.8。

$product = new Product();
$product->create([
    'company_id' => $request->user()->company_id,
    'enable' => $request->input('enable') ?? 0,
    'id_delivery_vat' => $request->input('id_delivery_vat') ?? 1,
    'id_product_vat' => $request->input('id_product_vat') ?? 1,
    'id_producer' => $request->input('id_producer'),
    'promo' => $request->input('promo') ?? 0,
    'name' => $request->input('name'),
    'qr_code' => $request->input('qr_code'),
    'oe_code' => $request->input('oe_code'),
    'description' => $request->input('description'),
    'product_price' => str_replace(",", ".", $request->input('product_price')) ?? 0,
    'promo_product_price' => str_replace(",", ".", $request->input('promo_product_price')) ?? 0,
    'product_delivery_price' => str_replace(",", ".", $request->input('product_delivery_price')) ?? 0,
    'quantity' => $request->input('quantity'),
    'url_address' => Str::slug($request->input('name'), '-')
]);
Schema::create('products', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->bigInteger('company_id')->unsigned();
            $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade');
            //$table->bigInteger('category_id')->unsigned();
            //$table->foreign('category_id')->references('id')->on('product_categories');
            $table->smallInteger('id_delivery_vat')->unsigned();
            $table->foreign('id_delivery_vat')->references('id')->on('vat');
            $table->smallInteger('id_product_vat')->unsigned();
            $table->foreign('id_product_vat')->references('id')->on('vat');
            $table->bigInteger('id_producer')->unsigned();
            //$table->foreign('id_producer')->references('id')->on('product_producers');
            $table->string('name', 120)->nullable();
            $table->string('qr_code', 120)->nullable();
            $table->string('oe_code', 120)->nullable();
            $table->char('enable', 1)->default(0);
            $table->char('promo', 1)->default(0);
            $table->longText('description')->nullable();
            $table->decimal('product_price', 9, 2)->default(0);
            $table->decimal('promo_product_price', 9, 2)->default(0);
            $table->decimal('product_delivery_price', 9, 2)->default(0);
            $table->unsignedInteger('quantity')->default(0);
            $table->string('url_address', 160);
            $table->timestamps();
            $table->engine = "InnoDB";
            $table->charset = 'utf8mb4';
            $table->collation = 'utf8mb4_unicode_ci';
        });
class Product extends Model
{
    use scopeActiveTrait;

    protected $fillable = ['company_id', 'id_delivery_vat', 'id_product_vat', 'id_producer', 'name', 'qr_code', 'oe_code', 'enable', 'promo', 'description', 'product_price', 'promo_product_price', 'product_delivery_price', 'quantity', 'url_address'];
    protected $quarded = ['id'];
    public $timestamps = true;

    public function categories()
    {
        return $this->belongsToMany(Category::class, 'product_selected_categories', 'product_id', 'category_id');
    }
}

我怎么修理它?我尝试:$product->id,$product->nextid()-但这不起作用:(

共有1个答案

干浩然
2023-03-14

如果您希望上一个插入id将其放入下一个插入产品中,那么您不必这样做,只需使用自动递增id即可。

否则,如果您希望它用于其他用途,只需保存该产品,然后获取id:

$product->save();
$lastId = $product->id; // or whatever name you give to the id
 类似资料:
  • 这是我的密码: 如您所知,它会在数据库中插入一个新行。现在我需要获取插入行的。我怎么能得到这个? 注意,我知道,如果我使用

  • 问题内容: 我使用以下查询将多个记录插入到表中: 由于查询要插入多个记录,因此无法使用 SCOPE_IDENTITY 来检索PK。有什么方法可以获取最近插入记录的ID? 问题答案: SCOPE_IDENTITY()将正确为您提供LAST ID。您需要将其与@@ Rowcount结合使用,以提供ID范围。 正如其他Richard指出的那样 ,这仅在您将增量设置为1时有效 例如: 执行此操作的另一种方

  • 我想从我的学生表中检索最后插入的id并传递到视图。但我不知道怎么做?我使用以下代码在表中插入数据。 有人能帮帮我吗?

  • 问题内容: 我是mybatis的新手。我正在尝试获取最后插入的记录的ID。我的数据库是mysql而我的映射器xml是 我认为在这里写的语句“ SELECT LAST_INSERT_ID()as id”应该返回最后插入的记录的id,但是插入记录后我总是得到1。 我的mapper.java类有方法 在我的课堂上,我正在使用 int id = fileAttachmentMapper.insertSel

  • 嗨,我是拉威尔的新手,我在将数据插入数据库和抛出错误时遇到了麻烦 msgstr"Countable():参数必须是实现可数的数组或对象" 我想在数据库中添加所有注册员工的出勤信息 控制器 叶片输出: 模型类员工出席扩展模型{// } 模型2 命名空间App; 使用Illumb\Database\Elount\Model; 类employee_data扩展模型{//protected$fillabe

  • 我得到了这段代码,但我认为这是不好的方法,如果有像100K的结果,它会返回100K的新用户怎么办?对于,我是否可以使用其他方法,但我不太确定如何实现。另外,是否应该使用块?