【发布时间】:2015-05-07 11:51:51
【问题描述】:
我正在使用 Laravel Eloquent 的 firstOrNew() 函数根据 3 个条件检索数据库记录:
$summary = $this->firstOrNew(array(
'date' => $date,
'product_id' => $product_id,
'store_id' => $store_id,
));
我还有这 3 个字段的唯一复合键。
即使记录存在,该函数也不会检索它,所以当我更新属性并运行$summary->save() 时,我得到了精彩
SQLSTATE[23000]:违反完整性约束:1062 重复条目 >'2015-01-02-6-23' for key 'date_product_store_unique'
有什么想法吗?
Laravel 版本是 4.2。
【问题讨论】:
-
您确定传递的变量中的数据存储是您所期望的吗?
-
我已经调试了输入,事实上, firstOrNew() 函数使用该确切数据创建了一个新对象。我认为这个问题与唯一键不是主键有关,但我不确定。
-
Laravel 4 不支持复合键 laravel.io/forum/… 也许 Laravel 5 支持...我不知道
标签: laravel laravel-4 eloquent integrity