2016-09-02 12 views
0

以下のユーザテーブルがあります。Phalconカラム名プレフィックス

enter image description here ファルコンでは、すべてのモデル関連プロセスを実行するときにすべてのプレフィックス名を削除できるように、列名をマップすることは可能ですか? YIIではこれが可能です。 はそう

$user->id will point to $user->tbl_user_id; 
$user->fullname will point to $user->tbl_user_fullname; 
$user->phone will point to $user->tbl_user_phone; 

は、私はあなたがメソッドgetSourceを指定することができるモデルであるため、テーブル名を呼ぶ問題はない、と言うことができます()。私は列のマッピングを試してみましたが、オンラインでは見つかりませんでした。

また、これをこのように実装しようとすると、これが起こる可能性がありますか?既知の欠点?

PHPバージョン

PHP 5.4.44-0 + deb7u1(CLI)(組み込み:2015年8月16日9時51分53秒)を著作権(C) 1997年から2014年ザ・PHPのZend EngineのグループV2.4.0、著作権(C)1998から2014 ゼンド・テクノロジーズ

+0

なぜフィールド名にプレフィックスを付ける必要がありますか? (テーブルのためだけでなく)...私はあなたが列マッピング(これを試してください)で達成することができると思うが、奇妙だ。私は少し研究します。 –

+0

それは、テーブルフィールドの名前がどのように設計されたのか、なぜテーブルフィールドまたはカラムマッピングを実行するのかということです。 – user1149244

答えて

2

あなたの内部Phalconの命名にデータベースの列名をマップすることができます。

あなたでこれを入れてモデル

public function columnMap() 
{ 
    return [ 
     // database column name => phalcon name 
     'tbl_user_id'  => 'id', 
     'tbl_user_fullname' => 'fullname', 
     'tbl_user_phone' => 'phone', 
    ]; 
} 

列マッピングの詳細については確認しthe documentation

ORMは、開発者がテーブル内のものにモデル内の異なる列名を使用することを可能にする独立した列マップをサポートします。 Phalconは新しい列名を認識し、データベースのそれぞれの列と一致するように名前を変更します。 [...]。

+0

こんにちはティモシー、はい、私はそれを確認しました。申し訳ありませんが、私の質問はあまり明確ではありませんでした。私はすべてのモデルでそれを定義する必要はないということを知りたいですか?そのため、tbl_user、tbl_bag、tbl_contactsがある場合、3つのモデルすべてが1つのマッピングファイルを読み込みます。 – user1149244

+0

これを行うための方法はありません。 – Timothy

関連する問題