Symfony2 отображает целочисленный столбец в виде строки - PullRequest
0 голосов
/ 13 марта 2012

Я работаю над приложением Symfony2, которое я использую для управления своим ежемесячным бюджетом.

У меня есть сущностный расход со столбцом суммы, который сохраняется в формате float в db

/**
* @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

Когда я изменяю функцию getAmount, чтобы она возвращала только $ this-> amount, я не получаю ошибки.

Как сохранить значение $ amount в виде числа с плавающей точкой в ​​БД, но отображать его в виде строки при просмотре значения?

Обновление:

Если я изменю отображение на

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

, тогда оно будет работать, но тогда моя пустая форма дает мне значение $ 0,00 в поле суммы, а это не то, что я хочу

1 Ответ

0 голосов
/ 13 марта 2012

Если вы хотите, чтобы объявление включало в себя знак доллара, вы можете создать еще один геттер специально для этой цели, например:

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

Ваша форма будет использовать основной метод получения, связанный с полем, т.е. getAmount (), поэтому он никогда не будет работать, если вы вернете строку, когда тип поля является числовым (float / integer / decimal).

...