Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Enum Array Support with `simple_array` Type

未关闭
#6 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
64/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
php, postgresql

调研方向

首先在 Doctrine 模块中定位 grabEntityFromRepository()、grabFromRepository()、seeInRepository() 和 haveInRepository(),然后检查对于 simple_array 字段,repository criteria 是如何传递给 Doctrine 的。使用所示的 enum-array 映射和 PostgreSQL 设置重现该故障。完成的标准是,受影响的 helper 能够处理 array 值而不会生成无效的 SQL,并且为受支持的方法提供回归覆盖。

由索引模型根据 Issue 内容生成。

描述

It seems that enum arrays are not supported, or am I doing something wrong?

/**
 * @var FieldType[]
 *
 * @ORM\Column(type="simple_array", enumType="Demo\FieldType")
 */
private array $supportedFields;

I can't use grabFromRepository() or seeInRepository() as it seems like the module doesn't internally handle the conversion to a comma-delimited string properly. I'm not sure if this issue includes haveInRepository() as well since have not tested it.

$result = $this->tester->grabEntityFromRepository(Demo::class, [
    ...
    'supportedFields' => [FieldType.Field1, FieldType.Field2, ...] // <-- problematic
]);

Crashes with a SyntaxErrorException:

Doctrine\DBAL\Exception\SyntaxErrorException : An exception occurred while executing a query: SQLSTATE[42601]: Syntax error: 7 ERROR:  syntax error at or near ","
LINE 1: ...$1 AND d0_.name = $2 AND d0_.supported_fields = $3, $4, $5, ...
                                                             ^
主要语言
PHP
星标
4
派生
2
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Codeception/module-doctrine 的其他 Issue

查看 Codeception/module-doctrine 的全部 Issue

相似的 Issue

更多 PHP Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。