2012-03-13 40 views
0

我正在使用Symfony2应用程序管理我的每月预算。Symfony2以字符串形式显示整数列

我有一个实体的费用,与在该数据库

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

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

保存为一个漂浮在我的房源量专栏中,我想要显示的金额为字符串,像这样:

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

但是当我去我的窗体中添加一个新的开支,我得到以下错误:

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

当I C将getAmount函数挂起来只返回$ this-> amount,然后我没有错误。

如何将$ amount的值保存为db中的浮点数,但在查看该值时将其显示为字符串?

更新:

如果我改变映射

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

那么它的工作原理,但后来我的空单给我的数额领域的$ 0,00价值,这”不是个吨什么我想

回答

0

如果想上市,包括美元符号,那么你可以专门创建另一次吸气用于这一目的,例如:

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

您的表单将使用与该字段关联的主要getter,即getAmount(),因此如果字段类型为某种类型的数字(float/integer/decimal)时返回字符串,它将不会工作。

+0

Thanx,如果Symfony没有给出这个错误并且没有像字段格式一样严格,那么它是理想的,但是,嘿,我不能质疑一个真棒框架! – Pierre 2012-03-13 18:22:16

相关问题