Я использую функцию Laravel красноречив в firstOrNew(), чтобы получить запись БД на основе 3 критериев:Laravel first0rNew Integrity Нарушение ограничения
$summary = $this->firstOrNew(array(
'date' => $date,
'product_id' => $product_id,
'store_id' => $store_id,
));
У меня также есть уникальный составной ключ из этих 3-х полей.
Даже если запись существует, то функция не извлекает его, поэтому, когда я обновить атрибут и запустить $summary->save()
я получаю прекрасный
SQLSTATE [23000]: Integrity нарушение ограничения: 1062 Дублированный запись> '2015-01-02-6-23' для ключа 'date_product_store_unique'
Любые идеи?
Laravel версия 4.2.
Вы уверены, что хранилище данных в переданных переменных является тем, что вы ожидаете? – Bogdan
Я отлаживал ввод, по сути, функция firstOrNew() создает новый объект с такими точными данными. Я считаю, что проблема связана с уникальным ключом, который не является основным ключом, но я не уверен. – Shannon
Laravel 4 не поддерживает составные клавиши http://laravel.io/forum/09-25-2014-models-for-tables-with-multiple-columns-for-primary-key возможно Laravel 5 делает ... I не знаю – cawecoy