Невозможно обновить новые поля базы данных в Symfony 2.3 - PullRequest
0 голосов
/ 24 марта 2019

Мне 3 дня для проекта Symfony php. Я не могу сохранить вновь созданные поля базы данных. Мне нужно сохранить строку «квитанция» или «счет-фактура» при некотором условии, которое я уже обнаружил. Мои коды следующие:

class ReceiptPage
{

....

    /**
     * @var string
     * @ORM\Column(name="analyzed_invoice_number", type="string", length=80, nullable=true)
     */
    private $analyzedInvoiceNumber;

сеттеры и геттеры:

    /**
     * @return string
     */
    public function getAnalyzedInvoiceNumber()
    {
        return $this->analyzedInvoiceNumber;
    }

    /**
     * @param string $analyzedInvoiceNumber
     */
    public function setAnalyzedInvoiceNumber($analyzedInvoiceNumber)
    {
        $this->analyzedInvoiceNumber = $analyzedInvoiceNumber;
    }

, хотя я принудительно устанавливаю свойство до $em->flush();, оно не сохраняется.

Я сохраняю свойство следующим образом:

$receiptPage->setStatus(ReceiptPage::STATUS_FINISHED); // this is working
$receiptPage->setAnalyzedInvoiceNumber('receipt'); // this is not working
$em->flush();

Есть ли что-нибудь связанное с Doctrine и ORM ? Если я принудительно установлю значения для существующих свойств, он будет работать, но новое свойство не будет сохранено. столбец БД: analysis_invoice_number .

Я много пробовал из некоторых блогов, но не получилось. Кто-нибудь может помочь? В проекте также используются Redis и Elastic search ТИА

1 Ответ

0 голосов
/ 24 марта 2019

Документы Symfony для Symfony2.7 сообщают следующее при обновлении объекта :

Обратите внимание, что вызов $ entityManager-> persist ($ product) не требуется.Напомним, что этот метод просто говорит Doctrine управлять или «наблюдать» за объектом $ product.В этом случае, поскольку вы извлекли объект $ product из Doctrine, он уже управляем.

Хотя это и не требуется, попробуйте решить эту проблему, сохранив сначала этот объект, а затем сбросив его.

...