问题标签 [splobjectstorage]
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.
forms - Symfony 3 - 表单 - 没有教义的实体中的 CollectionType
我正在为 symfony3 表单和 CollectionType 类苦苦挣扎:
我有一个包含几个复杂表单的页面。我不使用任何数据库(经过验证的表单被发送到外部 REST 服务)
现在假设我的请求有一个名为“ProductService”的实体对象:
还有一个 ProductServiceType 类来呈现表单:
有了这个设置,一切都像魅力一样工作,所有产品都将添加到我实体的产品数组中。问题是,我希望 $products 是一个 SplObjectStorage 对象:
如果我将它设置为此并在其中附加一个空对象,symfony 将无法再呈现表单。它抛出以下错误: 警告:SplObjectStorage::offsetExists() 期望参数 1 是对象,给定字符串
那么,谁能告诉我,当不使用教义和 orm 时如何处理实体中的 collectionType?是使用数组的唯一可能性,还是这种情况有任何文档,我没有找到?(我仍然想知道 symfony 是如何调用 offsetExists 的,必须实现一些东西来处理 SplObjectStorage,还是我错了?)
php - 如果同一个对象实例多次附加到 SplObjectStorage 会发生什么?
或者换句话说,我应该在附加之前检查它是否已经在集合中吗?
php - 使用对象作为键的多维地图
我有一组对象 ( MainObject
),它们由两个对象 ( SubObject1
, SubObject2
) 和一个字符串 ( theString
) 唯一定义。我MainObject
通过返回一个基于两个子对象和字符串的现有对象来从集合中检索一个,如果它存在,则创建一个新对象,将其添加到集合中,然后返回该对象。
下面的伪代码在标准数组可以使用对象作为键的假想世界中演示了这一点。
这应该如何最好地实施?
一种可能性是类似于以下未经测试的代码,但是,它有点冗长,如果有更清洁的解决方案,我很感兴趣。