【发布时间】:2019-02-13 01:09:20
【问题描述】:
在整个代码中,我通过从 API 调用中获取数据来填充一个雄辩的模型。填充模型后,我会保存它,但它有可能存在于数据库中(主 ID)。
这样填充模型似乎很愚蠢:
$lead = new Lead;
$lead->id = '123';
$lead->name = 'Tom';
$lead->address = '121 main st';
然后必须这样做才能使用 updateOrCreate:
$lead = Lead::updateOrCreate(
['id' => $lead->id],
[
'name ' => $lead->name,
'address ' => $lead->address,
]
);
我也试过了:
$lead = new Lead;
$lead = Lead::find($place);
$lead->id = '123';
$lead->name = 'Tom';
$lead->address = '121 main st';
$lead->save();
当然,这不起作用,因为如果潜在客户不存在,您将返回一个空对象,并且无法从空值创建默认对象。
【问题讨论】:
-
为什么要插入主键?不应该是
AUTO_INCREMENT吗?要检查它是否存在,请像您一样使用find()函数。然后,您将需要 if-else 条件来完成其余的工作。 -
为什么两者都需要?我不明白为什么你的第一个代码块是必要的/
标签: php database laravel eloquent