私はCakePHPアプリケーションを開発しています。アプリケーションは複数のデータベースに分散されるので、UUIDをプライマリキーとして使用したいと思います。また、統合ACLフレームワークCakePHP ACL(UUIDプライマリキー付き)
CakePHPの2.1に私はthe tutorialに応じつもりですし、私は今、私はエラーを取得していますが
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)
);
を以下にDBスキーマを変更した:
エラー:SQLSTATE [42883]:未定義の関数: 7エラー:楽しいction max(uuid)は存在しませんLINE 1:SELECT MAX( "Aro"。 "rght")AS "rght" FROM "public"。 "aros" AS "... ^ヒント:指定された名前と引数に一致する関数はありませんタイプ。明示的な型キャストを追加する必要があるかもしれません。
CakePHPのバージョンは2.1.0-betaで、私はUUIDデータ型のPostgreSQLを使用しています。
誰かにUUIDのCakePHP ACLフレームワークを使用してもらえますか?私はCakePHPフレームワークのこの変更を最小限に抑えて、このアプリケーションの将来のサポート性を確保したいと考えています。
CakePHP ACLフレームワークで最も簡単な方法を探していますので、独自の「ACLフレームワークの種類」を作成する必要はありません。しかし、タイプを「文字(36)」に変更すると、コードは間違いなくなりますが、問題はまだ機能していれば問題になります。 – Marek
@Marek私はデータ型を変更しません。問題は、なぜUUIDを最大にする必要があるかということです。そうした場合は、計算のためだけに値をキャストします。あなた自身の集合関数 'max(uuid)'を書くこともできます。 –