问题标签 [doctrine-mapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1238 浏览

php - 如何在 Doctrine 映射中描述多列外键

我们有一个数据库模式,以简化(略微做作)的形式,看起来像:

在此处输入图像描述

在列(domainId、groupId)上设置从用户到域的外键,以保证引用完整性。这种结构可以很好地达到预期目的。


但是,对于与同一个数据库通信的新应用程序,我现在需要为 Doctrine 创建一个映射以映射上述结构,包括列上的外键关系。

我尝试了以下方法:

但这给了我一个错误: UnitOfWork.php line 2649: Undefined index: groupId

所以,我的问题是:

在 Doctrine 中描述多列多对一外键关系的正确方法是什么?



为了完整起见,数据库为上面 ERD 中描述的模式创建代码:

0 投票
0 回答
131 浏览

doctrine-orm - 如何以编程方式添加/删除实体的映射

我有一个处理程序,它对Entity两种不同的查询使用相同的处理程序:

第一个处理程序的方法是在遗留数据库表上执行的,它需要映射所有用@ORM\Column( id, idInstrum, idDevice, instrumType) 注释的字段。为此,我使用原始查询并通过ResultSetMapping

它就像一个魅力。问题出在需要在表上持久化数据的其他处理程序的方法上app.meter:我真正想要持久化的是属性的一小部分(即只是ididInstrum但不是instrumType为了在我的新表的架构中没有该列.

我正在考虑使用StaticPHPDriver,但我不确定它是否是正确的方法:我真正想要的是根据我的需要手动添加/删除一些 ORM 映射(即不同的处理程序的功能)

那可能吗?@ORM\column我可以删除不需要保留的映射(注释),但是这样我就不能通过 using 映射额外的属性ResultSetMapping,除非我可以以编程方式添加它。

任何提示都非常受欢迎

0 投票
1 回答
511 浏览

symfony - 覆盖特定实体类的映射

我正在使用带有 Doctrine 的标准 Symfony 2.8 框架。我的实体的映射都有注释,但我需要使用 PHP 方式(通过定义loadMetadata静态方法)来映射单个实体。我知道有一种方法可以覆盖映射包配置,如此所述,但我想要的是指定一个实体。那可能吗?谢谢

0 投票
0 回答
30 浏览

doctrine-orm - 不再引用时如何安全删除实体

我有以下实体场景:在此处输入图像描述

PhyVar 可以被多个引用PhyVarSelection。当我删除一个特定的PhyVarSelection,我想删除PhyVar如果没有其他人PhyVarSelection再引用它PhyVar

oncascade={"persist", "remove"}PhyVarSelection即使其他选择仍在引用它,on也会尝试删除它。oprhanRemoval=true根据这个写得很好的解释不是正确的答案,但我可能误解了它。

手动检查是完成此任务的唯一方法吗?

0 投票
2 回答
710 浏览

php - 没有 JOIN 表的 Symfony 一对多单向关系

我有以下表格:

所有可本地化的文本都存储在一个表中,以及连接到该表的所有其他表。

我不知道如何编写 Country 模型?这就是我到目前为止的方式。

由于结构的原因,您无法从 StringText 实体获取 Country 或任何实体。但我不想制作一个连接表,因为它有点矫枉过正,而且完全没有意义。

0 投票
1 回答
35 浏览

php - Doctrine 2 映射 2 个表,错误

Zend Framework 3, Doctrine 2. 我创建了 2 个 MySQL 表的映射

我有这个错误:

错误“..\Object 上的主键 ID 缺少值”。

为什么?好像是按照例子-> 5.3来做的。一对一,双向从站点Doctrine

0 投票
0 回答
197 浏览

php - Symfony:三个表格内的教义映射并在复选框循环中显示数据

我尽量不重复自己,所以我检查了很多参考资料,但没有一个涉及我的情况。我有三个表,列如下:

在这里,我试图将 T1 和 T2 的数据保存在 T3 中。就像上面的表格结构一样。首先我必须列出 T2 的所有数据将显示在复选框的循环中。所以在实体中我做了:



我已经完成了这些步骤来映射表格,但我没有在我的树枝模板表单中获得便利设施列表。这是我的控制器代码:

这是我的 locationform.php

这是我的 locationAmenity.html.twig 代码

请指导/建议我在哪里出错以获取复选框循环中所有便利设施的列表,以便我可以进一步提交那些在位置便利设施表 (t3) 中针对特定位置检查为真的便利设施。

0 投票
1 回答
90 浏览

symfony - 具有由 3 个字段组成的组合主键的单个表上的教义映射

我正在努力为以下类别(如场景)选择正确的映射:

这张表是关于食物类别的。它们只能是一个匹配family++的class条目sector。填充的主键字段越多,类别记录就越“具体”。具有family+ class+的记录sector(即实际的扇区类别)将具有 2 个隐式父项:a/ A记录,具有相同familyclass设置sector为 NULL,b/家庭记录,最高类别,具有相同的家庭值但两者都class设置sector为NULL。

一个部门记录将有 0 个孩子,但有 2 个父母意味着$spring_fruit_object->getParents()将返回一组食品实体,例如[natural_hydrated_object, greens_hydrated_object](急切地)。

实际上,我担心根据上面列出的规则,现有的关联映射都不能自动处理这个用例。我可能必须从存储库类构建自定义查询。

您将如何处理这种情况?谢谢你。

0 投票
1 回答
1055 浏览

symfony - Expected value of type for association field , got "double" instead

I want to put a number into a NumberType field, but when I get this exception:

Expected value of type "GestionBundle\Entity\MaterialCost" for association field "GestionBundle\Entity\Intervention#$materialCost", got "double" instead.

Intervention

MaterialCost

InterventionType

0 投票
0 回答
106 浏览

symfony - Doctrine OneToMany 关系映射缺失 inversedBy

我正在尝试在我的两个实体之间创建 OneToMany 关系。一个Customer可以是许多Clubs 的成员。

这些是我的实体:

我没有向表中添加字段,而是club创建了一个如下所示的customer_club表:

这些关系定义是错误的,因为当我加载 Symfony 3.4 应用程序时,我收到以下错误:

[创建错误] 在属性 AppBundle\Entity\Customer::$clubs 上声明的注释 @ORM\OneToMany 没有名为“inversedBy”的属性。可用属性:mappedBy、targetEntity、cascade、fetch、orphanRemoval、indexBy

我做错了什么?