1

我有一个具有多个 HABTM 关系的架构。在这个阶段我烘烤了几乎所有的代码来测试模式。

我注意到,除非相关表具有 INT 主键,否则 HATBM 关系无法正确实现。

我需要使用一些 VARCHAR(50) 的 PK。如果 PK 为 VARCHAR(50),HABTM 似乎无法正确更新连接表。

有人知道解决方法吗?我在 Centos 6.3 上使用 cake 2.2.1

4

1 回答 1

1

CakePHP 仅原生支持使用INTCHAR(36)主键。为了VARCHAR(50)用作 PK,您需要使用该$primaryKey属性并在模型函数(例如beforeSave)或控制器中对您的 PK 进行任何生成/操作:

if($this->data) {
  $this->data['SomeModel'][$this->SomeModel->primaryKey] = 'your key value';
}
于 2012-09-20T16:03:00.217 回答