我阅读了所有类似的问题,但是它并没有帮助我,所以我发布了另一个问题。 所以我将实体写入数据库表,却忘记了一个字段,所以我添加了该实体,当我尝试在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部分完全可以正常工作,但是如果我再次将其放置,则会导致错误。
我已经尝试过用doctrine:clear:cahce-meatadat/query/result
清除故障,但是它对我有帮助。所以我检查了memchache并禁用了它。我们也不使用APC缓存,因此这不是问题。我们尝试了所有这些,没有任何尝试。
我试图用另一个完全不同的名称来创建另一个类,但是竞争是相同的,只是我更改了类名,并且如果我在查询生成器中更改了该实体的名称,它就可以正常工作。
有人处于类似状况吗?还是可以给我另一个建议?
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...
}
$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)
因此,如果有人可以帮助我,那将非常好。非常感谢。