我在从数据库获取记录之后尝试更新。
$item = Model::find($id);
$item->field = 'foo';
$item->save();
它查找请求的记录,但为更新记录而生成的查询不正确:
update `Models` set `field` = ? where `id` is null
我不知道为什么会发生这种情况!
出了什么问题?
更新
我刚刚在数据库表中将primary-Key
从ID
重命名为id
。然后它工作了!我不知道它的区分大小写
update `bannerads_orders` set `ViewedCount` = ? where `id` = ?
答案 0 :(得分:3)
好吧,我发现了问题。正如Laravel文件所说:
注意:Eloquent还会假设每个表都有一个主键 列名为id。您可以定义primaryKey属性来覆盖它 惯例
但在我的表格中,ID
不是id
。所以在我将其更改为id
后,一切都按预期工作。
答案 1 :(得分:0)
Laravel使用prepared statements。这没什么不对。此外,您实际上没有指定错误。
答案 2 :(得分:0)
你应该在这种情况下使用:
$item = Model::findOrfail($id);
$item->field = 'foo';
$item->save();
似乎$id
可能为null或用户无法找到,而且保存它没有任何意义。
如果未找到用户,将抛出异常并且此保存不会被执行