gpt4 book ai didi

php - Laravel - 覆盖模型 ID

转载 作者:行者123 更新时间:2023-12-02 20:20:10 25 4
gpt4 key购买 nike

我正在开发电子书管理系统。我使用 UUID,而不是自动递增整数主键,效果很好:

protected static function boot()
{
parent::boot();

static::creating(function ($model) {
$model->{$model->getKeyName()} = Uuid::generate()->string;
});
}

我还在模型上禁用了 PK 增量:

public $incrementing = false;

现在 EPUB 标准建议出版商为每本书分配一个 UUID(如果可能的话),所以我认为如果文件提供了现有的 UUID,最好使用它,否则为图书馆生成一个新的 UUID。
因此,我将 id 添加到模型的 $fillable 数组中,并在我的 create Controller 方法中有条件地设置 ID:

if (array_key_exists('uuid', $epubMetaData)) {
$book->id = $epubMetaData['uuid'];
}

然后我填充其余字段并 $book->save() 这本书。它最终会得到一个新生成的 UUID,即使 $epubMetaData 数组中有一个……所以我怀疑 Laravel 决定忽略我的 ID。有什么我错过的吗?

最佳答案

好吧,您没有检查 id 是否已在创建回调中设置:

static::creating(function ($model) {
if (!$model->id) {
$model->id = Uuid::generate()->string;
}
});

关于php - Laravel - 覆盖模型 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51613453/

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