2011-01-15 2 views
0

ケーキのPHPでは、find()メソッドを使ってモデルのフィールドを取得できます。フィールドに変換関数を適用したいのですが?このタスクを直接達成する方法はありますか?Cakephp Autoconvert find()フィールド?

私はモデルがフィールドでRaceTimeと呼ばれていると仮定racerIdtimeMillis

RaceTime 
+------------+ 
| Field  | 
+------------+ 
| id   | 
| racerId | 
| timeMillis | 
+------------+ 

timeMillisはレースがミリ秒単位でかかった時間を指定するintです。明らかに、レースが15651ミリ秒かかると言うと、人間の読者にとってはそれほど有用ではありません。私はこれを人間が読める形式に変換したいと考えています。

これをfind()で直接実行する方法はありますか?

また、find()の終了後に結果をループする唯一のオプションはありますか?

+0

あなたは通常、ビュー内で「オンデマンド」です。それを出力する前に変換してください。モデルでこれを行う必要はありません。変換されたすべての値に使用しない場合もあります... – mark

答えて

3

Virtual Fieldsを使用してご希望の商品をお選びください。例と

編集:

var $virtualFields = array(
    'timeMillisHR' => 'FROM_UNIXTIME(Field.timeMillis)' 
); 
1

>あなただけが 'フィールド' =を使用することができ、秒にtimeMillisを変換したいと仮定すると、配列( '/ 1000 timeMillis'、 'other_fields')はどこother_fields 'は、クエリの一部として取得する他のフィールドを表します。

プロジェクトで一般的な変換が行われていて、適切な変換方法が見つからない場合は、次のいずれかの方法でTimeHelperを検索することができます。 NumberHelper、あなたは簡単にあなた自身のヘルパーを書くことができます。

変換するすべてのインスタンスをループする必要があります。

関連する問題