クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

CakePHPでモデル、物理テーブル名を変更する方法について

CakePHPはデフォルトだとコントローラと物理データベーステーブルのネーミングがある。例えばAdminControllerだと物理テーブル名をAdminsにしないといけない。

Authモジュールでモデル名を変更するには、Auth->userModelに利用します。AuthモジュールはデフォルトUsersテーブルを参照するようになっています。あと、cakePHPで生成されるmd5ハッシュ文字がMySQLで出力されるselect md5(‘test’)の結果と違うように思われる。

class AdminController extends AppController {
    public $name = 'Admin';
    public $uses = array('AdminTbl');
    public  $components = array('Auth');
 
    function beforeFilter(){
        Security::setHash('md5');
        $this->Auth->authError = 'あなたはログインしていません。';
        $this->Auth->userModel = 'AdminTbl';
        $this->Auth->fields = array(
            'username'=>'customer_id',
            'password'=>'password'
        );
        //アクセス制限しないアクション
        $this->Auth->allow('login');
 
        //ログイン後の遷移先を固定
        $this->Auth->loginRedirect = array('controller' => 'program', 'action' => 'index');
    }

モデルに$useTable を設定する必要がある。

class AdminTbl extends AppModel {
    var $name = 'AdminTbl';
    var $useTable = 'admin_tbl';
    var $primaryKey = 'customer_id';
}

コメントは受け付けていません。