Проблема:
Я прочитал все подобные вопросы, но это не помогло мне, поэтому я отправил еще один вопрос.Итак, я записываю сущность в свою таблицу базы данных, и я забыл одно поле, поэтому я добавил к сущности, и когда я пытаюсь использовать его в моем разделе 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)
Так что, если кто-то может мне помочь, было бы очень приятно.Большое спасибо.