我已向实体添加了新参数,但无法保存或无法在检索中返回值。实体中的参数及其getter和setter可以在下面看到。
/**
* @ORM\Column(name="amount", type="decimal", scale=2, nullable=true)
*/
protected $amount;
/**
* Set amount
*
* @param decimal $amount
*
* @return Transaction
*/
public function setAmount($amount)
{
$this->amount = $amount;
return $this;
}
/**
* Get amount
*
* @return decimal
*/
public function getAmount()
{
return $this->amount;
}
我创建了一个迁移,并且新字段已添加到事务表中。当我尝试保存时,将添加一条新记录,但仅保存以前存在的参数,而不保存$ amount。
$this->addSql("ALTER TABLE transaction ADD amount NUMERIC(10, 2) DEFAULT NULL AFTER payment_method");
在不理解为什么无法保存之后,我想直接更新数据库表以查看是否可以手动检索。我使用以下方法将金额值设置为123.45
输入的值:
$manager = $this->getDoctrine()->getManager();
$transaction = $manager->getRepository('ShopHqCartBundle:Transaction')
->findOneByTransactionId($id);
var_dump($transaction->getId());
var_dump($transaction->getTransactionStatus());
var_dump($transaction->getAmount());
除新的amount
参数之外的所有值都可以正常工作,但是getAMount()
返回null
。如果我更新getAmount()
方法以返回transactionStatus
,它将返回状态OK。所以问题似乎是实体中参数的声明,但我看不到方式或位置。
public function getAmount()
{
return $this->transactionStatus; // Return $transactionStatus as a test
}
我还使用php app/console cache:clear
清除了缓存。我在实体中缺少什么,使新值无法按预期工作?