【发布时间】:2018-03-19 17:33:52
【问题描述】:
return $this->entityManager
->createQueryBuilder()
->select('cac.fkClient', 'cac.fkIndividualConsultation', 'cac.dateAdded', 'cac.fkWorker')
->from(ClientActivityIndividualConsultationHistory::class, 'cac')
->where('cac.dateAdded BETWEEN :startDate AND :endDate')
->andWhere('cac . fkWorker = :workerId')
->setParameters([
'startDate' => $dateStart,
'dateEnd' => $dateEnd,
'workerId' => $workerId
])
->getQuery()
->getArrayResult();
错误信息:
[语义错误] 'fkClient 附近的第 0 行,第 11 列, cac.fkIndividualConsultation,':错误:无效的 PathExpression。一定是 StateFieldPathExpression。
ORM:
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Sepc\Bundle\WebBundle\Entity\ClientActivityIndividualConsultationHistory"
table="client_activity_individual_consultation_history">
<indexes>
<index name="fk_client_activity_individual_consulation_history_worker_id" columns="fk_worker_id"/>
<index name="fk_client_activity_individual_consulation_history_client_id" columns="fk_client_id"/>
<index name="fk_client_individual_consulation_history_consultation_id"
columns="fk_individual_consultation_id"/>
</indexes>
<id name="id" type="integer" column="id">
<generator strategy="IDENTITY"/>
</id>
<field name="dateAdded" type="datetime" column="date_added" nullable="false">
<options>
<option name="default">CURRENT_TIMESTAMP</option>
</options>
</field>
<many-to-one field="fkClient" target-entity="Client" fetch="LAZY">
<join-columns>
<join-column name="fk_client_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>
<many-to-one field="fkWorker" target-entity="Worker" fetch="LAZY">
<join-columns>
<join-column name="fk_worker_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>
<many-to-one field="fkIndividualConsultation" target-entity="CalendarIndividualConsultation" fetch="LAZY">
<join-columns>
<join-column name="fk_individual_consultation_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>
</entity>
</doctrine-mapping>
我尝试了所有方法(stackoverflow、google、自己的经验),但我真的不知道哪里有问题。有人可以向我解释这个错误或将我导航到正确的方式吗?谢谢。
我不想使用 IDENTITY 函数,因为我需要与外键关联的所有数据。 (Doctrine 自动选择这些对象,我认为这会产生错误,但为什么呢?)
使用:Symfony FW、Doctrine 2 ORM、MySQL
我的建议:
- 错误的 ORM 生成文件
- QueryBuilder 错误
【问题讨论】:
标签: mysql database symfony orm doctrine