我有一个学说实体,并添加了两个新属性(msoId和contract)。现在,当执行用于保存实体的代码时,将使用NULL值保存2个新列,而不是我在set()上传递的列。已经存在的列工作正常。我必须指出,它在我的本地计算机上可以正常工作,但是在TEST和STAGE环境中却不能。我已经用“ doctrine orm:generate-proxies”重新生成了代理,但是问题仍然存在。它看起来像某种缓存,但我不知道。请帮忙。
实体:
class SubscriptionSettlement扩展了实体{
const COMPLETE = 1;
const INCOMPLETE = 0;
/**
* @var int
* @ORM\Column(type="integer", length=11, nullable=false, options={"unsigned"=true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var int
* @ORM\Column(name="entitlement_id", type="integer", nullable=false, length=11, options={"unsigned"=true})
*/
private $entitlementId;
/**
* @var int
* @ORM\Column(name="due_date", type="integer", nullable=false, length=11, options={"unsigned"=true})
*/
private $dueDate;
/**
* @var int
* @ORM\Column(name="package_id", type="integer", nullable=false, length=11, options={"unsigned"=true})
*/
private $packageId;
/**
* @var int
* @ORM\Column(name="complete", type="boolean", nullable=false, length=1, options={"unsigned"=true, "default"=0})
*/
private $complete;
/**
* @var int
*
* @ORM\Column(name="mso_id", type="integer", nullable=false, length=11, options={"unsigned"=true})
*/
private $msoId;
/**
* @var string
*
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $contract;
/**
* @return int
*/
public function getEntitlementId(): int
{
return $this->entitlementId;
}
/**
* @param int $entitlementId
*/
public function setEntitlementId(int $entitlementId)
{
$this->entitlementId = $entitlementId;
}
/**
* @return int
*/
public function getDueDate(): int
{
return $this->dueDate;
}
/**
* @param int $dueDate
*/
public function setDueDate(int $dueDate)
{
$this->dueDate = $dueDate;
}
/**
* @return int
*/
public function getPackageId(): int
{
return $this->packageId;
}
/**
* @param int $packageId
*/
public function setPackageId(int $packageId)
{
$this->packageId = $packageId;
}
/**
* @return int
*/
public function getComplete(): int
{
return $this->complete;
}
/**
* @param int $complete
*/
public function setComplete(int $complete)
{
$this->complete = $complete;
}
/**
* @return int
*/
public function getMsoId(): int
{
return $this->msoId;
}
/**
* @param int $msoId
*/
public function setMsoId(int $msoId)
{
$this->msoId = $msoId;
}
/**
* @return string
*/
public function getContract(): string
{
return $this->contract;
}
/**
* @param string $contract
*/
public function setContract(string $contract)
{
$this->contract = $contract;
}
}
保存到数据库中的代码:
$subscriptionSettlementEntity = new SubscriptionSettlement();
$subscriptionSettlementEntity->setEntitlementId($entitlementId);
$subscriptionSettlementEntity->setDueDate($dueDate);
$subscriptionSettlementEntity->setPackageId($packageId);
$subscriptionSettlementEntity->setComplete($complete);
$subscriptionSettlementEntity->setMsoId($msoId);
$subscriptionSettlementEntity->setContract($contract);
try {
$this->getEntityManager()->persist($subscriptionSettlementEntity);
$this->getEntityManager()->flush();
} catch (UniqueConstraintViolationException $ucve) {
throw new DatabaseException(
"This subscription has already been renewed",
DatabaseException::UNIQUE_INDEX_VIOLATION_CODE
);
}
return $subscriptionSettlementEntity->getId();
}