Некоторые столбцы не заполняются в базе данных при сохранении с использованием doctrine2 - PullRequest
0 голосов
/ 25 октября 2018

У меня была сущность доктрины, и я добавил два новых свойства (msoId и contract).Теперь, когда код для сохранения сущности выполняется, 2 новых столбца сохраняются со значением NULL, а не с теми, которые я передаю в set ().Уже существующие столбцы работают нормально.Я должен отметить, что он отлично работает на моем локальном компьютере, но не в средах TEST и STAGE.Я уже восстановил прокси с помощью "doctrine orm: generate-proxies", но проблема продолжается.Похоже на какое-то кеширование, но я не знаю.Пожалуйста помоги.

Объект:

Класс 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();
    }
...