我正在开发一个 CakePHP 应用程序,我想使用 UUID 作为主键,因为应用程序将分布在多个数据库中,我还想利用 CakePHP 2.1 中的集成 ACL 框架
我将按照教程进行,并且已将数据库方案修改为以下
CREATE TABLE acos (
id uuid NOT NULL,
parent_id uuid DEFAULT NULL,
model VARCHAR(255) DEFAULT '',
foreign_key uuid DEFAULT NULL,
alias VARCHAR(255) DEFAULT '',
lft uuid DEFAULT NULL,
rght uuid DEFAULT NULL,
PRIMARY KEY (id)
);
CREATE TABLE aros_acos (
id uuid NOT NULL,
aro_id uuid NOT NULL,
aco_id uuid NOT NULL,
_create CHAR(2) NOT NULL DEFAULT 0,
_read CHAR(2) NOT NULL DEFAULT 0,
_update CHAR(2) NOT NULL DEFAULT 0,
_delete CHAR(2) NOT NULL DEFAULT 0,
PRIMARY KEY(id)
);
CREATE TABLE aros (
id uuid NOT NULL,
parent_id uuid DEFAULT NULL,
model VARCHAR(255) DEFAULT '',
foreign_key uuid DEFAULT NULL,
alias VARCHAR(255) DEFAULT '',
lft uuid DEFAULT NULL,
rght uuid DEFAULT NULL,
PRIMARY KEY (id)
);
但是现在我收到一个错误:
错误:SQLSTATE[42883]:未定义函数:7 错误:函数 max(uuid) 不存在第 1 行:SELECT MAX("Aro"."rght") AS "rght" FROM "public"."aros" AS"。 .. ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
CakePHP 的版本是 2.1.0-beta,我正在使用带有 UUID 数据类型的 PostgreSQL。
有没有人成功使用带有 UUID 的 CakePHP ACL 框架?我想在 CakePHP 框架中进行最少的修改,以便将来支持这个应用程序。