我有一个具有多个 HABTM 关系的架构。在这个阶段我烘烤了几乎所有的代码来测试模式。
我注意到,除非相关表具有 INT 主键,否则 HATBM 关系无法正确实现。
我需要使用一些 VARCHAR(50) 的 PK。如果 PK 为 VARCHAR(50),HABTM 似乎无法正确更新连接表。
有人知道解决方法吗?我在 Centos 6.3 上使用 cake 2.2.1
我有一个具有多个 HABTM 关系的架构。在这个阶段我烘烤了几乎所有的代码来测试模式。
我注意到,除非相关表具有 INT 主键,否则 HATBM 关系无法正确实现。
我需要使用一些 VARCHAR(50) 的 PK。如果 PK 为 VARCHAR(50),HABTM 似乎无法正确更新连接表。
有人知道解决方法吗?我在 Centos 6.3 上使用 cake 2.2.1
CakePHP 仅原生支持使用INT
或CHAR(36)
主键。为了VARCHAR(50)
用作 PK,您需要使用该$primaryKey
属性并在模型函数(例如beforeSave
)或控制器中对您的 PK 进行任何生成/操作:
if($this->data) {
$this->data['SomeModel'][$this->SomeModel->primaryKey] = 'your key value';
}