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() 填充嵌套对象 的相关文章

  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • Ace Editor 自动完成和多种语言

    如何为 Ace 编辑器创建自动完成功能以及如何突出显示 php 中的 html javascript 和 csshttp ace ajax org http ace ajax org
  • 为什么/何时应该使用泛型方法?

    学习Java的时候遇到过通用方法 public
  • 使用 .htaccess 进行 PHP 设置时出现 500 内部服务器错误

    当我使用时 htaccess对于以下 PHP 设置 我得到500 Internal Server Error访问网站时 中的代码 htaccess file php flag display errors off php flag log
  • RuntimeException - 会话存储未根据请求设置 - Laravel Socialite - Facebook

    我在用着Laravel 5 7 and Laravel Socialite 3 1 我想使用登录Facebook我刚刚为此项目配置了应用程序 这些是我为此配置的主要文件 env FACEBOOK CLIENT ID FACEBOOK CLI
  • 通过字符串操作预防 PHP SQL 注入[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • PHP 可以解压缩使用 .NET GZipStream 类压缩的文件吗?

    我有一个 C 应用程序 它与基于 PHP 的 SOAP Web 服务进行通信以进行更新和许可 我现在正在开发一个反馈系统 供用户通过软件自动提交错误和跟踪日志 根据我之前发布的问题 我认为 Web 服务将是实现此目的的最佳方法 最有可能以最
  • 如何在 Yii2 应用程序中显示多个选择下拉列表中的选定值?

    我正在研究 Yii2 我正在使用这样的自定义数组创建多个选择下拉菜单 在控制器文件中 all groups Groups find gt where group created by id gt orwhere new Expression
  • 如何处理PDO异常[重复]

    这个问题在这里已经有答案了 我正在尝试与PDOphp 上的类 但我在找到处理错误的正确方法时遇到了一些麻烦 我编写了以下代码
  • Symfony/Doctrine 重新排列数据库列

    当我使用doctrine schema update命令行生成表时 Doctrine 或Symfony 似乎想要添加一个命令来重新排列我的列 将键放在它出现的前面 我想知道是否 更希望在哪里 我可以禁用环境的这个 功能 所以当我去生成我的表
  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • PHP:解析器 asp 页面 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 早上好 我可以用 php 解析一个
  • WordPress 子主题 -functions.php 复制 - 无法“重新声明”

    我正在使用带有儿童主题 starkers child 的 Starkers 我需要编辑functions php来声明一个菜单 所以我复制了functions php JS文件夹和external文件夹 它们都在functions文件中的某
  • Symfony/Form:函数 DoctrineType::__construct() 的参数太少

    我有一个奇怪的错误 我在自己的系统中实现了 Form 组件 我在那里创建了一个 FormType 其中使用 EntityType 作为字段 每次我想用 formBuilder 创建表单时 它都会抛出以下错误 Fatal error Unca
  • 如果您不在 Java 中进行克隆,那么您会做什么以及如何称呼它?

    有没有人对 Java 中的复制构造函数 工厂方法等有任何建议或已建立的最佳实践和命名约定 特别是 假设我有一堂课Thing我想要一个返回新值的方法Thing与 a 具有相同的值Thing传入 如果是实例方法 则作为实例 您会将其作为构造函数
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • POSTed 数组保留其值

    今天 我注意到我的一个 WordPress 安装的行为方式非常奇怪 每当我从仪表板更新帖子时 它的一些额外输入都会保留它们已有的值 所有这些都是多维数组 例如 post php post 123 action 编辑
  • ElasticSearch 和 PHP 中的多个字段搜索

    我正在使用最新版本弹性搜索 PHP https github com elasticsearch elasticsearch php以及最新版本的 MongoDB 和 ElasticSearch 我需要对可以包含一个或多个值的多个字段进行搜
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • 无法访问 WordPress 中声明的全局变量

    我有以下代码 g value something print g value function get value global g value print g value print get value 当我在独立的 PHP 脚本中运行它

随机推荐

  • 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