Laravel &引用;“已解决”;使用firstOrCreate创建后的对象在php中的Id为0,在DB中的Id为right
我使用firstOrCreate雄辩的方法将对象保存到数据库中。 代码: 例如,在DB中为10258,但在debugbar中为0Laravel &引用;“已解决”;使用firstOrCreate创建后的对象在php中的Id为0,在DB中的Id为right,laravel,eloquent,Laravel,Eloquent,我使用firstOrCreate雄辩的方法将对象保存到数据库中。 代码: 例如,在DB中为10258,但在debugbar中为0 多谢各位 这就是问题所在。我并没有在模型中将递增设置为false public$incrementing=false dd($card->id)也给出0 二,四。只有在创建新行时才会发生这种情况。 数据库中有正确的Id,返回的对象Id为0。dd($card->Id)怎么样?因为可能存在具有该id的记录,但无法更新,可能您的日期未通过验证,这就是$card为0(fals
public$incrementing=false代码>
dd($card->id)代码>也给出0
二,四。只有在创建新行时才会发生这种情况。
数据库中有正确的Id,返回的对象Id为0。dd($card->Id)怎么样代码>?因为可能存在具有该id的记录,但无法更新,可能您的日期未通过验证,这就是$card为0(false)的原因,请尝试使用SQL执行该查询。我认为您应该会得到错误,关于dd是相同的结果@ChristopherHubert您可以向我们显示模型和迁移代码吗?可能与或@VaheGalstyan有关,我认为first或create
应该始终返回$card
,并且不能返回0/false/null。如果未创建记录,则在调用$card->id
$card = Card::firstOrCreate(
[
'id' => $product->id
],
[
'foil' => $data->foil,
'nonfoil' => $data->nonfoil,
'oversized' => $data->oversized,
'reserved' => $data->reserved,
'booster' => $data->booster,
'scryfallCollectorNumber' => $data->collector_number,
'fullArt' => $data->full_art,
'promo' => $data->promo,
'story_spotlight' => $data->story_spotlight,
'textless' => $data->textless,
]);
\Debugbar::info($card->id);