gpt4 book ai didi

mysql - 从 Eloquent 模型事件中获取新创建的 ID

转载 作者:可可西里 更新时间:2023-11-01 07:58:23 25 4
gpt4 key购买 nike

我有一个带有非自动递增主键 ID 的模型,我已经在我的模型中定义了它。

protected $primaryKey = "ID";

在我的 AppServiceProvider 中,我有一些模型监听器。

Product::created(function ($product){
dd($product);
});

所以如果我去插入一个新行:

$NewProduct = new Product;
$NewProduct->ID = 12345;
$NewProduct->Name = "Test";

事件被触发,所以 dd 在 AppServiceProvider 中运行。 ID 按预期进入数据库,但我输出的 $product 数组显示 ID 为 0。

为什么ID为12345入库时显示为0?

最佳答案

您应该将自动增量属性显式设置为 false 以使其工作。在您的模型中:

protected $primaryKey = "ID";
public $incrementing = false;

Primary Keys

Eloquent will also assume that each table has a primary key column named id. You may define a $primaryKey property to override this convention.

In addition, Eloquent assumes that the primary key is an incrementing integer value. If you wish to use a non-incrementing primary key, you must set the $incrementing property on your model to false.

关于mysql - 从 Eloquent 模型事件中获取新创建的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com