问题标签 [zend-form2]
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.
php - 过滤器和验证器被添加两次
我在zf2 github上写过它,但还没有人回答。但也许这不是一个错误,我做错了什么。这是我的代码:
字段集
形式
控制器动作
结果
如您所见,有两个 StringTrim 过滤器和两个 NotEmpty 验证器。这很烦人,尤其是当我使用 File\RenameUpload 过滤器并且它试图重命名和移动已经重命名的文件时。
zend-framework2 - Zend Framework 2 MVC 应用程序中的依赖管理
由于 ServiceLocatorAwareInterface 可能会从 ZF3 中的 AbstractController 中删除,因此应该通过构造函数或 setter 方法传递依赖项。
考虑到这一点,考虑用户或站点控制器的用例,其中包含注册、激活帐户、登录、注销等操作。这至少需要一个 UserService 和 2 个表单。添加更多相关操作(远程身份验证、帐户链接等),您最终会得到 4 或 5 个表单。
通过构造函数传递所有这些依赖关系充其量是混乱的,更重要的是,每个操作通常只需要一种形式。
您认为以下哪种技术更好,为什么?
为每个操作创建单独的控制器,以便每个控制器只需要一个表单(除了服务之外)。例如 RegistrationController、LoginController、LinkAccountController 等。
- 这样你最终会得到很多控制器。
在控制器的工厂中,根据请求的操作提供不同的形式。
- 控制器的构造依赖于这个工厂,更具体地说是请求环境(路由等)。您可以直接构造控制器(用于测试或其他),但是您需要确保依赖关系可用并抛出异常如果不。
使用事件管理器,在需要表单时触发控制器中的事件,并让事件处理程序按需提供依赖。
- 此处描述了此技术。
- 然后,您的控制器将依赖于 EventManager 而不是 ServiceLocator,这可能不会好多少。
将 FormElementManager 传递给控制器,并从中请求表单。
- 最有可能不比SL本身更好。
直接在控制器内部构造表单。
- 这如何影响可测试性?
- 然后,同样的问题将适用于处理具有多个服务(而不是表单)的控制器。
其他?
也可以看看:
validation - 将表单与原始输入传递给服务层
是验证表单并将其过滤后的输入传递给服务层,还是将原始输入传递给服务层,并让服务验证输入(有或没有表单实例)更好?
显然,如果是后者,控制器仍然需要访问表单,以便将其发送到视图进行渲染。如果是这样,您是否只需通过服务 ($service->getRegistrationForm()) 访问表单?
也可以看看:
zend-framework2 - Zend Framework 2 形式
我有一个难题。如果将绑定(对象)的数据添加到表单中,我想在我的表单中,这取决于图像是否存在,项目是否显示在表单上。
我是这样解决的,但我不知道这是否正确。
能不能更好的解决?
php - Zend 2 - 将验证器和过滤器添加到自定义表单
我要在这里吃香蕉。我创建了一个包含两个字段的简单表单。一个是文本字段,另一个是文本区域。表格看起来很棒,但我不会验证 - 无论我尝试什么。
这是我的表单类:
valdiators
和filters
只是我尝试过的许多事情之一......
在我的控制器中,表单始终有效:
我总是通过if
.
我想知道:为什么我在设置时仍然需要验证器required=true
?为什么他们不做任何事情时要实现这样的属性?
但仍然:如何验证我的表格?我只想要一个像trim
和NotEmpty
验证器这样的清洁过滤器。
谢谢!
doctrine-orm - Zf2 列出实体学说 2 中的元素
我有一个简单的问题,如何创建表单列表元素,比如网格或这个:
//列出来自 db, array(object,object,object) 的实体 //object = Application\Entity\Area
我使用了 Zend\Form\Element\Collection 表单,但我不知道如何从 db 填充集合日期,所以我有明确的表单。
我应该正确地做,用什么?
zend-framework2 - 验证 Zend\Form\Element\Collection
我有一个使用 Zend\Form\Element\Collection 动态添加“行”的表单。这工作正常,但我正在努力为这些行添加验证。
到目前为止,我的代码如下所示。我想我需要向 InputFilter\InputFilter::add() 传递一些东西,但我不知道是什么:
php - ZF2 表单元素集合验证
所以我有一个“简单”的表格
它自己的形式什么也不做。它添加一个 field_set 并返回一个模板名称。
SiteFieldSet 看起来像:
它将文本和集合元素添加到字段集中。字段集实现InputFilterProviderInterface
验证投入其中的数据。
名称必须至少为 200 个字符(用于测试)并且需要集合。
但现在我的问题来了。使用被扔到集合中的字段集,代码:
再次没什么特别的。现在定义了主机、主题和语言三个元素。字段集再次实现InputFilterProviderInterface
。所以类中必须有一个getInputFilterSpecification。
当我填写表格时
site[name]
= "test"
site[domains][0][host]
= 'test'
site[domains][0][theme]
=
site[domains][0][language]
'yeti' = 'nl_NL'
它给站点 [名称] 一个错误,说它必须至少 200 个字符,所以验证“有效”但它也应该给出一个错误site[domains][0][host]
,它需要至少 200 个字符(代码是复制粘贴的,并且使用是正确的) .
那么为什么不开始验证,或者我该如何解决这个问题,以便正确验证集合中的元素/字段集
php - 如何验证输入是否具有 zf2 形式的浮点值?
我班上有这个
当我输入像 5 或 78 这样的整数时,一切似乎都正常,但是当我尝试使用像 5.2 这样的数字时,我收到了下一条错误消息
输入似乎不是浮点数
php - Zend Form hydrator Classmethod 无法正确绑定到对象实体的问题
我试图使用 Classmethod() hydrator 将实体 Contact 与默认值(使用 getter)绑定到 ContactForm 表单。
问题是当我用一组值调用 setData 时,Hydrator 无法合并默认值和一组值,而是只返回一组值。请在下面找到我的代码摘录。
这是我的实体
在这里,我在控制器操作中对其进行测试
我想得到
但相反,我得到了这个结果
知道如何让 Classmethod() 从绑定中提取 getter 值并合并 setData() 上的剩余数据吗?