两个属性与一个实体共享相同的 OneToMany 关系 Symfony2

2024-03-30

首先描述一下我的情况。我正在使用 Symfony2,但我的实体之间的关系存在问题。

我有两个链接在一起的实体。这两个实体是AssociationQuestion and AssociationPossibleAnswer。我目前正在创建一个调查问卷软件,其中必须将左侧的一个可能答案链接到右侧的另一个可能答案,例如以下示例:

目前,我计划在类中拥有两个数组属性AssociationQuestion那将容纳许多AssociationPossibleAnswer对象。第一个数组将包含左侧的可能答案,第二个数组将包含右侧的可能答案。

因此,对我来说,看起来我会有两个 oneToMany 关系AssociationQuestion

AssociationQuestion:

    oneToMany:
        possibleAnswersLeft:
            targetEntity: AssociationPossibleAnswer
            mappedBy: associationQuestion

        possibleAnswersRight:
            targetEntity: AssociationPossibleAnswer
            mappedBy: associationQuestion

然后,在AssociationPossibleAnswer,我会有一个 ManyToOne 关系:

AssociationPossibleAnswer:
    manyToOne:
        associationQuestion:
            targetEntity: AssociationQuestion

问题是我在尝试验证我的学说时遇到以下错误。看来你不能像我希望的那样将两个实体链接到一个实体上......

* The field AssociationQuestion#possibleAnswersLeft is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity AssociationPossibleAnswer#associationQuestion does not contain the required 'inversedBy=possibleAnswersLeft' attribute.

* The field AssociationQuestion#possibleAnswersRight is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity AssociationPossibleAnswer#associationQuestion does not contain the required 'inversedBy=possibleAnswersRight' attribute.

我想知道这是否是设置两个实体之间关系的正确方法。是否有可能有两个属性指向一个实体,而实体却不知道它是从哪个属性指向的。


这种情况无法通过 OneToMany 关联来解决。

你需要两个不同的关系AssociationQuestion and AssociationPossibleAnswer。按照您的设置方式,您只有 1 个关系。只需查看您在中创建的 1 ManyToOne 关联AssociationPossibleAnswer.

你试图让 1 个关系有 2 个对立面,这在理论上是不可能的。关系只能有 2 个端点(而不是 3 个)。

Solution

在中实现 2 个(单向)ManyToMany 关联AssociationQuestion,并使外键指向AssociationPossibleAnswer unique:

class AssociationQuestion
{

    /**
     * @ORM\ManyToMany(targetEntity="AssociationPossibleAnswer")
     * @ORM\JoinTable(name="association_question_association_possible_answer_left",
     *     joinColumns={@ORM\JoinColumn(name="association_question_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="association_possible_answer_id", referencedColumnName="id", unique=true)}
     * )
     */
    private $possibleAnswersLeft;

    /**
     * @ORM\ManyToMany(targetEntity="AssociationPossibleAnswer")
     * @ORM\JoinTable(name="association_question_association_possible_answer_right",
     *     joinColumns={@ORM\JoinColumn(name="association_question_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="association_possible_answer_id", referencedColumnName="id", unique=true)}
     * )
     */
    private $possibleAnswersRight;

    // ...

教义称此为一对多、单向连接表 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#one-to-many-unidirectional-with-join-table协会。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个属性与一个实体共享相同的 OneToMany 关系 Symfony2 的相关文章

  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 我的设置未保存在 WordPress 主题选项页面中

    我正在尝试创建一个基于 WordPress 设置 API 的主题选项页面 当我在浏览器中检查 options php 页面时 例如http mysite com wordpress wp admin options php http mys
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • 如何在PHP中获取div中的所有链接

    我想从另一个网站打开一个页面 并提取一个中的所有链接 href div of class layout 2 2 在此页面中 我如何使用 PHP 来做到这一点 我想复制layout 2 2中的每个链接this https url 网页 这是我
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • 使用 willdurand/BazingaJsTranslationBundle 时出现问题

    为了在我的 JavaScript 文件中使用翻译 我实现了willdurand BazingaJsTranslationBundle https github com willdurand BazingaJsTranslationBundl
  • PHP-列出一年中一个月中的所有天[重复]

    这个问题在这里已经有答案了 可能的重复 我在 PHP 中有 2 个日期 如何运行 foreach 循环来遍历所有这些日期 https stackoverflow com questions 3207749 i have 2 dates in
  • 使用 php 脚本的电子邮件管道

    你好 我想将所有电子邮件 到达我的收件箱 转发到 php 脚本并检索电子邮件内容并将其保存在文件中 因此 我正确地添加了具有管道路径的电子邮件转发器 转发地址 电子邮件受保护 cdn cgi l email protection 管道到程序
  • 在 laravel 中禁用特定路由的 csrf

    我有一个支付系统 数据被提交到第三方网站然后被拉回 当数据返回时 它会到达特定的 url 比如 ok 路由 REQUEST transaction 但由于 Laravel 中间件 我遇到了令牌不匹配的情况 第三方支付API无法生成token
  • 为什么我的 PHP 脚本无法对其创建的文件进行 chmod?

    我有一个 php 创建一个需要可执行的文件 它是一个需要由系统运行的批处理文件 由于某种原因 即使该文件归 apache 所有并且 php 作为 apache 运行 并且创建了该文件 该脚本还是在 chmod 行处终止 我需要进行哪些不同配
  • 优化数据可视化 Web 应用程序的性能

    我正在重写 3 年前编写的数据可视化网络工具 从那时起 浏览器的 JavaScript 引擎变得更快 所以我正在考虑将部分工作从服务器转移到客户端 在页面上 数据在表格和地图 或图表 中可视化 它使用相同的数据 但以不同的方式 因此准备显示
  • PHPMailer 验证失败

    当我尝试在工作中使用 Windows Server 2012 上的 PHPMailer 来使用 SMTP 发送报告电子邮件时 出现身份验证失败错误 我在域上使用服务器管理员帐户 我非常确定密码是正确的 检查下面的代码 require PHP
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • 计算特定产品类别的购物车商品数量

    我试图仅从 WooCommerce 中的特定产品类别获取购物车中的商品数量 我正在为一家酒厂做一个网站 它有酒精和非酒精产品 所有葡萄酒都属于 葡萄酒 主类别或类别 ID 34 其下有许多子类别和产品 对于属于此类别的任何商品 我需要知道此

随机推荐

  • SlideToggle 高度为“跳跃”

    我的 jQueryslideToggle 实验 谁能告诉我为什么我打开盒子时会 跳动 前半部分他们滑动 其余部分他们 跳跃 Thanks 约翰内斯 对我有帮助的是 overflow hidden 到那个切换
  • Android NDK:使用预编译静态库进行链接

    我正在尝试将 Jnetpcap 移植到 Android 以便使用它来解析 pcap 文件 Jnetpcap 是使用 JNI 的 libpcap 的 java 包装器 我已经使用 android 的源代码树将 libpcap 编译为静态库 当
  • 需要 EJB 3.1 Singleton + JPA + JSF 设计建议

    给定 简单的 JSF web 应用程序 无 Seam 让 JSF bean 调用几个 EJB 而 EJB 又加载并保存 JPA 实体 我想要的是使用 Singletonejb 和注入的注释EntityManager 代替 EntityMan
  • 将分析仪连接到 Howler sound

    我已经尝试将分析仪连接到 Howler 声音一段时间了 但没有成功 我像这样创建我的嚎叫声音 var sound new Howl urls media sounds genesis mp3 然后我使用 Howler 全局上下文创建分析器
  • 如何防止应用程序被标记为可疑

    我有一个使用 Visual Studio 2012 用 C 编写的 NET 应用程序 我通过自己的网站推广该应用程序并提供下载 在 Chrome 中下载它时 我收到一条消息 指出我的应用程序 不常下载 可能很危险 此外 当我下载自己的应用程
  • 处理 ListView 中的 MouseMove、MouseDown、MouseUp 事件以拖动无边框表单

    我在用着MouseMove MouseUp MouseDown移动无边界表单的事件 如此处的示例 它工作得很好 但对于 ListView 只有当我单击列表中的项目 其文本 时它才有效 如果我单击不包含项目的 ListView 的空间 它将不
  • 警告:javax.persistence.spi::未找到有效的提供程序

    我收到警告 WARNING javax persistence spi No valid providers found 我有带有 JPA 注释的代码 但我只需要它们与 JOOQ 一起使用 如何去掉这个警告呢 添加我的 gradle 文件
  • 为什么添加“Eq”类型约束而不使用“==”?

    因此 我有一个非常简单的函数 它接受两个参数 第一个是一小时 0 到 23 之间 第二个是一分钟 0 到 59 之间 此函数返回小时加一分钟 并以漂亮的样式格式化小时 举例来说 hour 11 12 return 11 heures et
  • 使用 find_by_id 获取 RSpec 中不存在的记录时引发 RecordNotFound

    我在 products controller spec rb 中编写了此规范 旨在测试在不存在的记录上调用 destroy 时的重定向 it deleting a non existent product should redirect t
  • JavaScript+Phonegap+Android:screen.width 返回错误(几乎随机)值

    使用 deviceready 事件启动应用程序后 Android 上的 Phonegap 应用程序在 ZTE Blade 本机 800px 上返回错误的 screen width window innerWidth 相同 值 我得到的宽度值
  • Amazon AWS Fargate 任务静态 IP 地址

    在 AWS 上迁移期间 我在 AWS 上创建了一个新集群 并使用 Fargate 方法部署了多个 docker 应用程序 每次更新任务定义期间 都会在服务内启动新任务 并从 AWS 公共 IP 池分配新的公共 IP 有没有关于如何将静态 I
  • 如何更改 NSTimer 的计时?

    我有以下代码 timer NSTimer scheduledTimerWithTimeInterval 0 50 target self selector selector onTimer userInfo nil repeats YES
  • 在 ASP.NET MVC Web 应用程序中包含预编译视图

    在 ASP NET MVC Web 应用程序中包含预编译视图 参考 http ofps oreilly com titles 9781449320317 ch ReusableUI html 请参阅上面的博客 我正在尝试在 MVC 3 中创
  • LMAX Disruptor最简单、最实际的示例代码

    我希望我能得到最简单的示例代码 它将展示如何使用 LMAX Disruptor http code google com p disruptor 不幸的是 每一段代码都已经过时了 有人知道 我在哪里可以找到最新的小指南 最好没有 DSL 这
  • EntityFramework 同表多对多关系

    我有一个名为 产品 的表 其中显然包含产品 但是 我需要创建相关产品 所以我所做的就是创建一个名为product related 的连接表 它有两个PK ProductID 来自 Products 表 RelatedID 也来自 Produ
  • 我可以在 Android 开发中使用 javax.script 吗?如果可以,如何使用?

    我在包含 javax script 时遇到了一些麻烦在 Android 项目中 我需要它 这样我就可以在 JavaScript 中使用 eval 函数 以便有效地解析算术函数 而无需自己构建解析器 我在这方面完全没有经验 也没有很多时间 我
  • 确定我的 App Engine 代码正在哪个项目 ID 上运行

    在 App Engine 应用程序中 有没有办法确定 GAE App Engine 实例正在运行的项目 ID 我想访问运行 App Engine 实例的同一项目中的大型查询表 如果可能的话 我不想对其进行硬编码或将其包含在另一个配置文件中
  • Prolog 程序从列表中删除每个第 n 个元素

    您能帮我解决以下问题吗 编写三元谓词delete nth从列表中删除每个第 n 个元素 样本运行 delete nth a b c d e f 2 L L a c e false delete nth a b c d e f 1 L L f
  • JavaFX 2 自动列宽

    我有一个 JavaFX 2 表 显示人们的联系方式 假设有三列 名字 姓氏和电子邮件地址 当我的应用程序启动时 它会在表中填充有关系统中已有人员的几行数据 问题是列宽都是相同的 大多数时候 名字和姓氏会完整显示 但电子邮件地址会被剪掉 用户
  • 两个属性与一个实体共享相同的 OneToMany 关系 Symfony2

    首先描述一下我的情况 我正在使用 Symfony2 但我的实体之间的关系存在问题 我有两个链接在一起的实体 这两个实体是AssociationQuestion and AssociationPossibleAnswer 我目前正在创建一个调