Blogブログ

Day: December 25, 2013

cakePHP: update aco table without command.

コマンドラインが使えない環境でacoテーブルを更新するには、以下のような関数を追加して実行する。 例えば、studentモデルを追加する。 まず、user/reitnitDBにアクセスすることでDBが更新されるよう、usersContorllerに下を追加する。 最初にStudentsのみ追加。 public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow(‘reinitDB’); } public function reinitDB() { $this->Acl->Aco->create(array(‘parent_id’ => 1, ‘alias’ => ‘Students’, ‘model’ => ”)); $this->Acl->Aco->save(); echo “all done”; exit; } user/reitnitDBにアクセスする。 acoテーブルに一行追加されているはず。 今回追加した分のIDを93とする。 下層のページのために、下記を追加。 $aliasesの配列に含まれるページをacoテーブルに追加していくもの。 public function reinitDB() { $aliases = array( ‘admin_index’, ‘admin_add’, ‘admin_edit’, ‘admin_delete’, ‘admin_view’, ‘admin_course_edit’, ‘admin_couse_take’, ‘index’, ‘add’, ‘edit’, ‘view’, ); foreach […]