2

現在、データベースを多くの CakePHP アプリケーションと共有する必要があり、各アプリケーションをそれぞれ識別するためにテーブルにプレフィックスが付けられています。

では、多くのアプリケーションが同じ ACL テーブルを共有できるのでしょうか?

または、テーブル ACL のデフォルト名を変更し、各アプリケーションのプレフィックスを追加することもできます。app_aros、app_acos、app_aros_acos?

/* beforeFilter() @ AppController */
$this->Acl->Aro->useTable = 'app_aros';
$this->Acl->Aco->useTable = 'app_acos';

このコードは機能しましたが、モデルの権限のテーブル名を変更する方法が見つかりませんでした...

提案?どうすればよいですか?

4

1 に答える 1

2

すべてのアプリで app/Config/core.php のこの行を変更しました

Configure::write('Acl.database', 'default'); 

に:

Configure::write('Acl.database', 'your_acl_connection');

また、 app/Config/database.php に接続を追加します

例:

public $your_acl_connection = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

すべてのアプリ ACL を管理するための 1 つの DB を用意するだけです。この DB では、すべての ACL テーブルを作成します。

于 2012-10-17T07:40:12.963 に答える