php - Doctrine 找不到列(错误:[column] 未定义。)
问题描述
我确实有以下来源:
//$enity = 'Company:CompanyResourceModel';
public function getAll($entity, $filter = null){
$qb = App::DB()->createQueryBuilder();
$data = $qb ->select('r')
->from($entity, 'r')
->where($this->getExpression($qb, $qb->expr()->andX(), $filter))
->getQuery()
->getArrayResult();
if ( is_array($data) && !empty($data) ) {
return $data;
}
return [];
}
其中 App::DB() 包含我的 EntityManager 和 getExpression() 来自这里 https://github.com/tarlepp/symfony-flex-backend/blob/c979e816ed5c4d02de2e857885a4b47f7e42d71e/src/Rest/RepositoryHelper.php#L152-L232
但是,我不断收到以下错误
Type: Doctrine\ORM\Query\QueryException
Message: [Semantical Error] line 0, col 51 near 'week = ?1': Error: 'week' is not defined.
'week' 是我的表的现有列,在给定的实体中定义为
/**
* @ORM\Column(type="integer")
*/
protected $week;
谁能告诉我哪里出错了,或者至少指出我正确的方向?提前致谢!
解决方案
根据评论,
您需要使用实体别名来引用实体属性,r
例如
->where('r.'.$this->getExpression($qb, $qb->expr()->andX(), $filter))
推荐阅读
- javascript - 如何从随机选择中排除数组元素
- r - 如何将数据帧随机拆分为行,但每个集群在 R 中的值的累积和完全相同
- java - 从 Applications/app.app 运行 jar 的 MacOS 在加载 .fxml 期间以不正确的路径错误结束
- python - 如何使用 SimpleImputer 类在具有不同常量值的不同列中估算缺失值?
- javascript - 从对象列表中选择唯一的子对象并使用 Ramda 转换它们
- python - 为什么 np.pad 没有按我期望的方式工作?
- ios - 在另一个视图控制器中更改对象的属性
- ios - 在核心文本动画中存在位置问题
- reactjs - 如何在不干扰主项目的情况下将故事书作为 git 子模块运行?
- r - 如何使用 ggplot 制作小提琴图,没有任何变量列?