doctrine-orm 相关问题

Doctrine ORM是一个PHP ORM。虽然Doctrine 1.2使用Active Record模式,但Doctrine ORM 2及更高版本使用Data Mapper模式。 Doctrine项目是一个开源库和工具的集合,用于处理用PHP编写的数据库抽象和对象关系映射。

Doctrine 分配错误:无法将 Doctrine\ORM\PersistentCollection 分配给属性

我有一个上传,我想显示数据库中的所有类别,但我不断收到 EntityType 错误,我不知道为什么之前可以正常工作。 这是错误:无法...

回答 5 投票 0

Symfony 6:无法登录(什么也没有发生)

希望你能帮助我... 当我尝试登录 Symfony 6 应用程序时,没有任何反应。我没有错误,但它没有记录我。它仅刷新页面。 安全.yaml 安全: 提供者:

回答 3 投票 0

具有时间戳属性的实体不起作用

我正在全新安装 API Platform (v3.2.7),并且正在尝试在示例 Greeting 实体上实现 Gedmo 的 Timestampable。我首先尝试使用属性 我正在全新安装 API Platform (v3.2.7),并且我正在尝试在示例 Greeting 实体上实现 Gedmo 的 Timestampable。我首先尝试使用属性 <?php namespace App\Entity; use ApiPlatform\Metadata\ApiResource; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; use Gedmo\Mapping\Annotation as Gedmo; use Doctrine\DBAL\Types\Types; /** * This is a dummy entity. Remove it! */ #[ApiResource] #[ORM\Entity] class Greeting { /** * The entity ID */ #[ORM\Id] #[ORM\Column(type: 'integer')] #[ORM\GeneratedValue] private ?int $id = null; /** * A nice person */ #[ORM\Column] #[Assert\NotBlank] public string $name = ''; public function getId(): ?int { return $this->id; } #[Gedmo\Timestampable(on: 'create')] #[ORM\Column(type: Types::DATETIME_MUTABLE)] protected $createdAt; #[Gedmo\Timestampable(on: 'update')] #[ORM\Column(type: Types::DATETIME_MUTABLE)] protected $updatedAt; } 但这不起作用,所以我尝试使用 Trait <?php namespace App\Entity; use ApiPlatform\Metadata\ApiResource; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; use Gedmo\Timestampable\Traits\TimestampableEntity; /** * This is a dummy entity. Remove it! */ #[ApiResource] #[ORM\Entity] class Greeting { use TimestampableEntity; /** * The entity ID */ #[ORM\Id] #[ORM\Column(type: 'integer')] #[ORM\GeneratedValue] private ?int $id = null; /** * A nice person */ #[ORM\Column] #[Assert\NotBlank] public string $name = ''; public function getId(): ?int { return $this->id; } } 在这两种情况下,错误都是: 执行查询时发生异常:SQLSTATE[23000]: 完整性约束违规:1048 列“created_at”不能 空 我过去也尝试过这个对我有用的 # config/services.yaml gedmo.listener.timestampable: class: Gedmo\Timestampable\TimestampableListener tags: - { name: doctrine.event_subscriber, connection: default } calls: - [ setAnnotationReader, [ '@annotation_reader' ] ] 错误是: 服务“gedmo.listener.timestampable”依赖于 不存在的服务“annotation_reader” 如果必须在 symfony 6.3 中弃用 Doctrine Lifecycle Subscribers,我不会这样做 编辑 我在探查器(理论)中看到了这一点,所以我猜这 2 个时间戳被设置为 NULL 而不是正确的值 自从升级到 Symfony 6.4 后,我遇到了完全相同的错误。由于不兼容,我必须删除 sensio/framework-extra-bundle。这可能是一个线索吗?

回答 1 投票 0

运行 Symfony 迁移时添加数据

我有一个使用 DoctrineMigrations 包的 Symfony 项目,我有一个非常简单的问题:当我运行迁移时(例如,当我将更新推送到生产时),我如何插入...

回答 8 投票 0

当我使用大于、小于或等于过滤器时,出现 count() 错误

在书籍页面上,我添加了按书籍作者数量的过滤器,我可以在其中指定 (=n | >n | 在书籍页面上,我添加了按书籍作者数量的过滤器,我可以在其中指定 (=n | >n | public function findPaginated(InterpretationTranslationSourceFilter $filter): NewPaginator { $qb = $this->createQueryBuilder('s') ->leftJoin('s.authorToSourceRelations', 'atsr') ->select('s as interpretationTranslationSource') ->addSelect('COUNT(DISTINCT atsr.id) AS authorToSourceRelationsCount') ->groupBy('s.id'); if ($filter->isHasLink() OR $filter->getDontHasLink()) { if ($filter->isHasLink()) { $qb->andWhere('s.url IS NOT NULL'); } if ($filter->getDontHasLink()) { $qb->andWhere('s.url IS NULL'); } } if ($filter->getSortByAuthorsCount()) { $comparisonOperator = substr($filter->getSortByAuthorsCount(), 0, 1); $authorsCount = (int) substr($filter->getSortByAuthorsCount(), 1); switch ($comparisonOperator) { case '=': $qb->having('authorToSourceRelationsCount = :authorsCount') ->setParameter('authorsCount', $authorsCount); break; case '>': $qb->having('authorToSourceRelationsCount > :authorsCount') ->setParameter('authorsCount', $authorsCount); break; case '<': $qb->having('authorToSourceRelationsCount < :authorsCount') ->setParameter('authorsCount', $authorsCount); break; default: $qb->orderBy('s.title', 'ASC'); break; } } if ($filter->getTitle()) { $qb->andWhere('s.title like :title') ->setParameter('title', '%' . $filter->getTitle() . '%'); } if ($filter->getUrl()) { $qb->andWhere('s.url LIKE :url') ->setParameter('url', '%' . $filter->getUrl() . '%'); } return new NewPaginator($qb, $filter); } 当我指定任何值时,我收到错误: count():参数#1($value)必须是 Countable|array 类型,Doctrine\ORM\Query\Expr\Andx 给定 我试图补充我的查询,重建它们,但一切都是徒劳的 直接在条件中将 HAVING 子句更改为 COUNT(DISTINCT atsr.id)。这应该可以解决问题。 HAVING 子句应该对聚合函数的结果进行操作,在本例中,它是不同作者 ID 的计数。 switch ($comparisonOperator) { case '=': $qb->having('COUNT(DISTINCT atsr.id) = :authorsCount') ->setParameter('authorsCount', $authorsCount); break; case '>': $qb->having('COUNT(DISTINCT atsr.id) > :authorsCount') ->setParameter('authorsCount', $authorsCount); break; case '<': $qb->having('COUNT(DISTINCT atsr.id) < :authorsCount') ->setParameter('authorsCount', $authorsCount); break; default: $qb->orderBy('s.title', 'ASC'); break; } 如果仍有问题,请尝试将 having 替换为 andHaving

回答 1 投票 0

外键约束不适用于 Doctrine/Symfony 和 SQLite

我正在使用 Doctrine 2.4.2、Symfony 2.4 和 SQLite 3.8.3。 我定义了两个实体: 类别: 类型:实体 ID: ID: 类型:整数 id: 真实 ...

回答 5 投票 0

如何从 Symfony 中的 Doctrine 迁移中排除预先存在的表?

我正在使用 Doctrine 开发 Symfony 项目,并且在迁移生成过程中遇到了问题。我的数据库有预先存在的表,我只想管理其中的一个子集

回答 2 投票 0

如何在 Doctrine2 中使用带有数组 IN 参数的本机查询

我用信条编写了这个原生 SQL 选择 COUNT(DISTINCT t.int_task_type_id) 作为 a_count 来自 tbl_xref_people_task t 其中 t.bit_completed = true 且 t.int_people_id = :peopleId AND ...

回答 3 投票 0

manager的remove功能删除两个对象

Symfony 6.4 这是我的架构: 命题:PK(TESTID、RUBRIQUEID、问题 ID、命题 ID) 我正在尝试使用 Symfony 的 EntityManagerInterface 删除一个命题,但有两个命题

回答 1 投票 0

如何将 WHERE IN 与 Doctrine 2 一起使用

我有以下代码,它给了我错误: 消息:参数编号无效:绑定变量的数量与标记的数量不匹配 代码: 公共函数 getCount($ids, $outcome) {...

回答 14 投票 0

无法规范化查询:BadValue $or/$and/$nor 条目需要是完整对象 - Doctrine

我正在尝试隐藏此查询 db.getCollection('队列').find({ $和:[ {队列:'testo'}, {$或:[ {$and: [{reserved_at: null}, {available_at:{'$lte':1490323024}}]...

回答 3 投票 0

PDO::MYSQL_ATTR_LOCAL_INFILE可以使用Symfony2中的配置文件设置

是否可以在 Symfony2 中设置 PDO / Doctrine 配置以使用 PDO::MYSQL_ATTR_LOCAL_INFILE => true 而不直接使用 PDO? 我的用例是将 csv 文件加载到 Amazon RDS 上的 MySQL 中。 S...

回答 2 投票 0

在 Symfony 6 中向 api 请求添加过滤器

前一段时间,我看到一个 symfony 项目,它允许前端使用我喜欢的语法发出过滤的 api 请求:property[operator]=value 例如 date[gte]=value 等。 我确信他们不使用...

回答 1 投票 0

如何编写一个依赖 Doctrine 并提供实体的 symfony 包?

我正在尝试编写一个邮件队列包,用于将电子邮件事件存储到某个位置并稍后检索并处理它们,因为我们不使用像 mandrill 或类似的服务。 那是为了(和我的...

回答 2 投票 0

在实体存储库上调用方法时出现“警告:潜在的多态调用”

我的实体项目有一个带有函数 findItemCount() 的存储库 (ItemRepository)。当我使用 $repository = $em->getRepository(Item::class); $items = $repository->findItemCount(); 我明白了...

回答 2 投票 0

Symfony 学说字符集问题

我正在尝试学习 symfony 并通过各种示例进行工作。主要问题是我真的不知道如何配置doctrine.yaml。 我正在使用 SQLSRV 当我加载 php bin/console 学说时:修复...

回答 2 投票 0

使用 EntityRepository::findBy() 时是否需要转义值?

当使用Doctrine2的EntityRepository::findBy()时,我还需要转义我传入的值吗? $em->getRepository('User')->findBy(array('name' => $_POST['name'])); ...

回答 2 投票 0

Zend Framework 2 和 Doctrine 2 - 多个数据库的配置

我将configuration.md文件中的代码粘贴到 模块.config.php '学说' => 数组( '连接' => 数组( 'orm_crawler' => 数组( 'driverClass' ...

回答 3 投票 0

在自引用实体上使用复合键时触发不需要的查询

我遇到了一个奇怪的问题,无法理解为什么会发生这种情况。 我有一个实体在实例和 Rid 字段上使用组合主键。 我也有父母作为自己

回答 1 投票 0

Doctrine 2 Orm ManyToOne 带有未签名的外键

我正在使用 Symfony3 和 Doctrine ORM 2 注释。 我从现有的 MySQL 数据库生成了实体。我也写了所有的关系。 在更新数据库 I 模式之前,我使用了命令 ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.