Это выглядит нормально для меня; Cake попытается обновить запись с помощью первичного ключа id
, если он установлен таким образом вручную.
Выполните поиск в вашей таблице с предположительно «уникальными» данными; и посмотреть, можно ли найти какой-либо другой результат. Возможно, у вас есть дубликаты данных, которые использовались до того, как вы ввели правило проверки isUnique
.
Вы делаете это обновление в цикле?
Возможно, вы попытаетесь изменить правило проверки on
в вашей модели на create
, чтобы оно не запускалось при обновлении; но я не уверен, что это необходимо; Кроме того, вы можете update
запись с дублирующейся информацией, победив цель!
var $validate = array(
'fieldName1' => array(
'rule' => 'isUnique',
'required' => true,
'allowEmpty' => false,
'on' => 'create', // here
'last' => false,
'message' => 'Your Error Message'
)
);