クラウドインフラ構築記

現在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';
}

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