2012-03-13 9 views
0

私は月額予算を管理するために使用するSymfony2アプリケーションに取り組んでいます。Symfony2は文字列として整数列を表示します

public function getAmount() 
{ 
    return '$'.number_format($this->amount, 2); 
} 

は、私はこのように、文字列として金額を表示したい私のリストではデシベル

/** 
* @ORM\Table(name="expenses") 
* @ORM\Entity 
*/ 
class Expense 
{ 

/** 
* @ORM\Column(name="amount", type="float", nullable=false) 
*/ 
private $amount; 

にfloatとして保存されている金額の欄に、エンティティの費用を持っています

が、私は新しい費用を追加するために、私のフォームに行くとき、私は次のエラーを取得する:

Expected argument of type "numeric", "string" given 

ときI cはgetAmount関数を$ this-> amountだけを返すようにすると、エラーは発生しません。

$ amountの値をdbの浮動小数点として保存することはできますが、値を見るときに文字列として表示できますか?

更新:

私は

@ORM\Column(name="amount", type="string", nullable=false) 

へのマッピングを変更する場合、それは動作しますが、その後、私の空のフォームは、「にISNれ、私に量フィールドに$ 0.00の値を与えますあなたが望むもの

答えて

0

リスティングにドル記号を含める場合は、その目的のために特別に別のゲッターを作成することができます。例えば、

public function getAmountWithCurrency() 
{ 
    return '$'.number_format($this->amount, 2); 
} 

フォームはgetAmount()というgetAmount()などのメインゲッターを使用しますので、フィールドタイプが何らかのソート(浮動小数点/整数/小数)の数値である場合に文字列を返すと機能しません。

+0

Symfonyがこのエラーを出さず、フィールドフォーマットに厳格ではない場合には、Thanxが理想的ですが、ちょっと、素晴らしいフレームワークに疑問を感じることはできません。 – Pierre

関連する問題