ZF2 - 如何使用 Hydrator/exchangeArray() 填充嵌套对象

2023-11-21

我有一个对象,其值存储在我的数据库中。我的对象还包含另一个对象,该对象仅使用它的 ID(外键)存储在数据库中。

http://framework.zend.com/manual/2.0/en/modules/zend.stdlib.Hydrator.html

之前Hydrator/exchangeArray在 ZF2 中,您可以使用 Mapper 来获取创建对象所需的一切。现在我试图通过使用来消除这个额外的层Hydration/exchangeArray填充我的对象,但在创建嵌套对象方面有点困难。

我的实体是否应该将内部对象的表注入其中,以便在将其 ID 传递到我的 'exchangeArray' 时我可以创建它?

以下是示例实体作为示例。

// Village
id, name, position, square_id

// Map Square
id, name, type

将 square_id 发送到我的 Village 的 ExchangeArray() 函数后。它将获取地图表并使用 Hydrator 使用我拥有的 ID 拉入正方形。

在我的实体中拥有映射器实例似乎不正确,因为我认为它们应该与任何东西断开连接,但它自己的实体特定参数和功能?


我认为您可能会受益于查看Zend\Stdlib\Hydrator\Strategy\StrategyInterface.

通过创建一个策略类,您可以将其附加到您的 Hydrator,因此当找到特定键(在本例中为 square_id)时,Hydrator 会将数据传递到策略类以extract() or hydrate().

然后,策略类可以执行水合和提取数据所需的任何操作。我使用了几个策略类,它们很简单getArrayCopy()/exchangeArray()以及其他水合/提取多个实体的策略。

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

ZF2 - 如何使用 Hydrator/exchangeArray() 填充嵌套对象 的相关文章

  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 我应该使用课程吗? (Python)

    我正在尝试编写一个包含一些数学函数的小型 Python 模块 例如 它可能包含如下函数 def quad x a b c return a x 2 b x c 您可能会注意到它包含几个参数 即a b c 除了变量x 现在 如果我将其放入文件
  • PHP 或 WAMP 不确定是什么

    我已经安装了 WAMP 服务器 2 0 PHP 5 4 3 安装WAMP后我已经重新启动了所有服务并且可以打开 phpinfo 显示良好 phpmyadmin 它也显示得很好 我可以使用数据库 然而 当在 Chrome 中运行简单的 php
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • 语法错误,第 288 行出现意外的“endif”(T_ENDIF)[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在离线处理我的 WordPress 网站的此代码错误 解析错误 语法错误 homez 541 photoher marie
  • 如何在 yii2 中使用两个不同的模型登录或切换身份类别?

    我想允许用户从两个不同的模型登录 配置文件 user gt identityClass gt app models User one more class here enableAutoLogin gt false authTimeout
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio

随机推荐

  • AutoMapper 无法将 enum 转换为 nullable int?

    我收到 AutoMapperMappingException 异常 引发了 AutoMapper AutoMapperMappingException 类型的异常 gt System InvalidCastException 从 Dummy
  • OpenGL 将纹理映射到球体

    我有 OpenGL 程序 我想用地球位图来纹理球体 我在 Blender 中准备了网格并将其导出为 OBJ 文件 程序正确加载适当的网格数据 顶点 uv 和法线 和位图 我已经检查了它与骨骼位图的纹理立方体 我的程序是纹理球体 但不正确 或
  • 接口的所有方法都是抽象的吗?

    我看到大多数地方都写着 All of the methods in an interface are abstract 但接口也可能包含default methods and static methods方法体存在于默认方法和静态方法中 那
  • 哪个 PDF 生成 API (Java) 支持古吉拉特语字体?

    我尝试过 iText PDFBox 和 Oracle Forms 我还成功地使用 iText 生成了古吉拉特语 PDF 文档 但是 不幸的是它没有生成古吉拉特语 UTF 8 语言的正确字体 我的项目是 jdk 1 4 这是强制使用的 所以
  • 按具有最大列值的记录过滤 Django 查询

    有没有一种简单的方法可以根据列中具有最大 最小值的记录来过滤 Django 查询 我本质上是在问these 问题 但是在 Django 的 ORM 的特定上下文中 e g 假设我有一个模型旨在存储每个人电话号码的历史值 class Pers
  • 将 TabControl ItemsSource 绑定到 ViewModel 集合

    由于某种原因 我很难得到我的TabControl绑定时正确显示ItemsSource to a ObservableCollection视图模型 我的设计基于此处找到的教程 http msdn microsoft com en us mag
  • Resharper 单元测试运行程序找不到内容文件

    我有一些测试依赖于我标记为 内容 和 始终复制 的一些文件 我使用 DeploymentItem 属性来确保在 VS 外部运行 mstest 时将它们复制到输出目录 然而 当在 VS 中使用 Resharper 测试运行器时 这些文件永远不
  • F# - int 类型与 unit 类型不兼容

    对于函数式语言来说相当陌生 但我正在使用大量 F 维护别人的代码 谁能对此提供一些见解 let mtvCap Rendering MTViewerCapture mtViewer mtvCap GetCapture mtvCap ToWpf
  • SQL 过程中的打印语句会影响性能吗?

    我正在使用 SQL Server 程序并且我有使用的习惯Print存储过程中的语句用于区分过程代码 我的数据库中有近 200 250 个过程 print 语句应该影响性能吗 我正在开发多用户 Windows 应用程序 我发现在我的桌面上运行
  • ASP.NET MVC 从 URL 获取路由值

    我想计算出该路线的价值是多少UrlReferrer在控制器的动作中 我无法弄清楚传入的 URL 在 MVC 管道的哪一部分被转换为 RouteValues 我想要实现的目标与此接近 你需要打电话RouteTable Routes GetRo
  • 调用 Node.js fork 时处理“找不到模块”错误

    如何捕获调用不存在的文件的 fork 错误 var cp require child process var fk cp fork missing file js 喷出 module js 340 throw err Error Canno
  • Next.js 默认情况下是同站点来源,但我仍然可以访问它

    我想知道如何保护我的 api 路由 文档说 api 路由默认是同站点源 API 路由不指定 CORS 标头 这意味着它们仅在默认情况下是同源的 您可以通过使用 cors 中间件包装请求处理程序来自定义此类行为 Next js 文档 但是 如
  • Android DrawerLayout 无法与 ViewPager 一起使用?

    我已经实施了浏览器里面一个抽屉布局它工作正常 但抽屉菜单列表视图无法正确显示 操作栏将显示在 ViewPager 选项卡下方 希望下图能给您一个想法 我正在使用动作条夏洛克图书馆 如何在操作栏正下方显示抽屉菜单列表视图 我已经尝试过了 活动
  • 在 php 5.3 之前伪造后期静态绑定

    我需要一个继承的静态函数 调用 来调用另一个已被重写的静态函数 内部 我可以通过后期静态绑定来做到这一点 但我的主机还没有 php5 3 所以我需要解决它 class ClassA static function call return s
  • ORM(对象关系映射)中的“N+1选择问题”是什么?

    N 1 选择问题 通常被认为是对象关系映射 ORM 讨论中的一个问题 我理解它与必须对对象中看似简单的东西进行大量数据库查询有关世界 有人对这个问题有更详细的解释吗 假设您有一个集合Car对象 数据库行 以及每个Car有一个集合Wheel对
  • 是否可以在 Python 中的 Azure Function Linux 使用计划中保存临时文件?

    首先对我的英语感到抱歉 我有一个使用 Python 的 Azure Function Linux 消费计划 我需要生成一个 html 使用 wkhtmltopdf 转换为 pdf 并通过电子邮件发送 generate temporally
  • MapDispatchToProps 导致父组件中出现 Typescript 错误,期望 Actions 作为 props 传递

    在我的子组件中 我定义了 MapDispatchToProps 将它们传递到 connect 中 并相应地定义了一个在 React Component Props Interface 中扩展的接口 PropsFromDispatch 现在
  • 在 Google App Engine 上运行 Alembic 迁移

    我有一个使用 SQLAlchemy Flask SQLAlchemy 和 Alembic Flask Migrate 的 Flask 应用程序 该应用程序在 Google App Engine 上运行 我想使用 Google Cloud S
  • 如何使用 Rcpp 和内联设置 g++ 编译器标志?

    我想设置 std c 0x 使用带有内联的 Rcpp I saw R 使用内联包时的 C 优化标志但不想进行系统范围的更改 所以我尝试了 Dirk 答案中的选项 2 I tried settings getPlugin Rcpp setti
  • ZF2 - 如何使用 Hydrator/exchangeArray() 填充嵌套对象

    我有一个对象 其值存储在我的数据库中 我的对象还包含另一个对象 该对象仅使用它的 ID 外键 存储在数据库中 http framework zend com manual 2 0 en modules zend stdlib Hydrato