У меня есть архивная таблица MySQL со следующей структурой:
`histories`
`uid` int(10) unsigned NOT NULL,
`type` varchar(255) NOT NULL,
`param` int(11) NOT NULL,
`param2` varchar(255) NOT NULL,
`time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
Я не хочу добавить автоинкрементный столбец "id".Движок этой таблицы - архив, и он делает именно то, что мне нужно, с этой структурой.
Я хочу сохранить так:
$this->History->create();
$this->History->save(['uid' => uid, 'type' => 'deleted_entry', 'param' => $thing_id]);
Но CakePHP вызывает обновление, которое я не надеваюне хочу, и движок ARCHIVE не поддерживает.Кажется, что Cake ищет первичный ключ uid, находит его и решает, что он должен обновиться, и, кажется, нет флага для принудительной вставки.Я не хочу прибегать к $this->Model->query()
.
ОБНОВЛЕНИЕ: Установить $primaryKey = null
в AppModel.$this->create();
вставит.
class History extends AppModel {
public $primaryKey = null;
}
Если вы хотите сделать обновление после, просто:
$this->History->primaryKey = 'uid';
до save()