Как исправить ошибку доктрины «ProductSelection не имеет поля или ассоциации с именем selectionType» - PullRequest
0 голосов
/ 20 декабря 2018

Проблема:

Я прочитал все подобные вопросы, но это не помогло мне, поэтому я отправил еще один вопрос.Итак, я записываю сущность в свою таблицу базы данных, и я забыл одно поле, поэтому я добавил к сущности, и когда я пытаюсь использовать его в моем разделе where, я получил эту ошибку:

Uncaught PHP Exception Doctrine\ORM\Query\QueryException: "[Semantical Error] line 0, col 85 near 'type = :type': Error: Class SystemBundle\Entity\ProductSelection has no field or association named type" at /www/csibaf/SymfonyLealkudtuk/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 63

Фон

У меня есть имя таблицы product_selection.В них у меня есть какое-то поле, и у меня есть поле product_selection_type, которое я забыл написать в своей сущности.Так добавили позже, и теперь я получил ошибку.Если я закомментирую, то раздел where в моем запросе прекрасно работает и работает, но если я добавлю его снова, это вызовет ошибку.Я уже пытался очистить cahce с doctrine:clear:cahce-meatadat/query/result, но это мне не помогло.Итак, я проверил memchache и там отключены.Мы также не используем кэш APC, так что это не проблема.Мы перепробовали все это и ничего.Я попытался создать другой класс с совершенно другим именем, но контекст тот же, только имя класса, которое я изменил, и, если я могу указать объект в моем конструкторе запросов, он работает нормально.Кто-то был в подобной ситуации?Или вы можете получить мне другое предложение?

Мои коды:

ProductSelection.php

namespace SystemBundle\Entity;


use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="product_selection")
 **/
class ProductSelection
{
    /**
     * @ORM\Id
     * @ORM\Column(name="product_selection_id", type="integer")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="ProductAll", inversedBy="selections")
     * @ORM\JoinColumn(name="product_selection_product_id", referencedColumnName="product_id", onDelete="CASCADE")
     **/
    protected $product;

    /**
     * @ORM\Column(name="product_selection_quantity", type="integer")
     */
    protected $quantity;

    /**
     * @ORM\Column(name="product_selection_price", type="integer")
     */
    protected $price;

    /**
     * @ORM\Column(name="product_selection_date", type="datetime")
     */
    protected $date;

    /**
     * @ORM\Column(name="ps_user_tracking_source", type="string")
     */
    protected $userTrackingSource;

    /**
     * @ORM\Column(name="product_selection_identify", type="string")
     */
    protected $identify;

    /**
     * @ORM\ManyToOne(targetEntity="UserBase")
     * @ORM\JoinColumn(name="product_selection_userbase_id", referencedColumnName="userbase_id", onDelete="CASCADE")
     **/
    protected $userbase;

    /**
     * @ORM\Column(name="product_selection_type", type="integer")
     */
    protected $type;

        below this just the getters and the setters...
}

Раздел QueryBuilder:

$selections = $this->entityManager->createQueryBuilder()
                ->select('ps')
                ->from('SystemBundle\Entity\ProductSelection', 'ps')
                ->where('ps.product = :id')
                ->andWhere('ps.type = :type')
                ->setParameters(array('id'=>$productId,'type'=>ProductSelectionConstant::NORMAL_CART));
            $selections = $selections->getQuery()
                ->useQueryCache($this->container->getParameter('useQueryCache'))
                ->useResultCache($this->container->getParameter('useResultCache'))
                ->getResult();

Поля моей таблицы:

"PRODUCT_SELECTION_TYPE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, 
"PRODUCT_SELECTION_PRODUCT_ID" NUMBER(10,0) NOT NULL ENABLE, 
"PRODUCT_SELECTION_QUANTITY" NUMBER(4,0) NOT NULL ENABLE, 
"PRODUCT_SELECTION_PRICE" NUMBER(12,0) NOT NULL ENABLE, 
"PRODUCT_SELECTION_DATE" DATE NOT NULL ENABLE, 
"PS_USER_TRACKING_SOURCE" VARCHAR2(69 BYTE), 
"PRODUCT_SELECTION_IDENTIFY" VARCHAR2(32 BYTE), 
"PRODUCT_SELECTION_ID" NUMBER(10,0) NOT NULL ENABLE, 
"PRODUCT_SELECTION_USERBASE_ID" NUMBER(10,0)

Так что, если кто-то может мне помочь, было бы очень приятно.Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...