2009-06-08 11 views
0

私はCakePHPに変換したい既存のPHP/MySQLアプリケーションを持っています。 私は列名を変更できず、CakePHP標準に準拠していません。既存のPHPアプリケーションをCakePHPに移植する際に、モデルに非標準のテーブル/カラム名を使用するにはどうすればよいですか?

例: テーブル名の1つを「ユーザー」といい、複数ではありません。主キーは "id"の代わりに "user_id"と呼ばれます。

CakePHPモデルのテーブル名とフィールドのエイリアスを定義する方法があると思っていましたが、見つけられないようですそれ。 提案がありますか?

あなたがモデルに関連付けられたテーブルの名前だけでなく、主キーを変更することができます
+0

エイリアスを定義する方法はありますか。私はむしろ私のCakePHPアプリでuser_idの代わりにユーザーIDを使いたいと思っています。 –

答えて

4

class User extends AppModel { 
    var $table = 'User'; 
    var $primaryKey = 'id'; 
} 

generated」ものとして、私はオーバーライドする方法を発見していない限り"created/modified"はCakePHPでデフォルトになっています(ライブラリのソースを通過して直接ハッキングすることを除く)。列を追加できますか?

+0

はい、私はあなたに好まれない列を追加できます。私は今夜​​あなたに解決策を試みます。アドバイスをいただきありがとうございます。 –

4

「生成済み」については、beforeSaveのようなコールバックで値を挿入/更新できます。

<?php 
class User extends AppModel { 
    var $table = 'user'; 
    var $primaryKey = 'user_id' 

    function beforeSave() { 
     this->data['generated'] = date('Y-m-d H:i:s'); 
    } 
} 
?> 
1

ありAliasBehaviorはあるが、それは(その記事のコメントを参照してください)一定の制限があります。それ以外

は、いくつかの基本的なカスタマイズが順序である:

私の知る限りでは、現在、ケーキを伝える方法はありません

が作成されたフィールドはと表示されますでは、おそらく手動で処理する必要があります。おそらくModel::beforeSave()です。

関連する問題