问题标签 [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.
forms - 绑定到 Doctrine 2 实体后,如何从 ZF2 表单中获取“其他”数据?
我有一个使用 Doctrine 2 实体上的注释创建的表单。(是的,我知道它很慢;这就是我学到的方法,并且我在遗留代码上使用它。但这可能适用于从头开始制作的表单)
无论如何,情况就是这样。该实体为用户提供了非常标准的内容:姓名、电子邮件、性别等。它还有一个一对多的属性,称为“角色”。所以我采用了我用 AnnotationBuilder 构建的表单并添加了一个选择元素(名为“roleId”)让用户选择用户的角色。从那里,一旦表单被验证,我就想获取 roleId 值,从数据库中获取相应的实体,然后 go $user->setRole($role)
。
这就是我遇到麻烦的地方。如果我使用$form->bind($user)
, 然后$form->isValid()
,当我调用 时$form->getData()
,我最终得到的是用户实体,而不是表单中过滤和验证数据的数组。
那么我应该如何处理这种情况呢?一旦绑定到实体,是否有某种方法可以从表单中获取所有过滤和验证数据的平面数组?
php - Zend Framework 2 的多页表单
我想创建两种不同的形式。在第一种形式中,用户可以输入数据。根据第一步中给出的数据,我想在第二个表格中准备一些预填充的数据。
有可能这样做吗?
对不起我的英语不好。
谢谢
forms - ZF2 表单验证来自选择的值,即使发送了无效值
我的 ZF2 应用程序中有一个带有选择元素的表单。在 ZF1 中,它会自动添加一个验证器来检查用户是否试图向其发布无效值。
所以只是为了踢球和咯咯笑,我决定看看如果我使用 Firebug 更改其中一个选项的值然后提交它会发生什么。结果:它以优异的成绩通过了。不用说,这不好。
以下是 select 选项的相关代码:
(注意:$roleOptions 作为参数传入表单)
这是验证器代码的相关部分:
(显然,$notEmpty 是 NotEmpty 验证器的一个实例)
这里发生了什么?ZF2 是否不再添加验证器以确保它收到的值是最初是选项列表的一部分?我现在必须手动添加验证器来选择选项吗?
编辑:我检查了文档,它说选择元素会自动添加一个数组验证器。它应该可以工作,但事实并非如此。我什至尝试更改服务器端的值,结果相同——验证器没有获取无效值。
是的,我正在检查表格是否有效。
编辑#2:为清楚起见,这里是整个表单的代码
doctrine-orm - ZF2 Doctrine Form 注解类型选择
我对选择元素的注释有疑问。我总是得到一个输入字段。
这是我的注释。
我忘了什么吗?
亲切的问候 :)
更新 2014-04-23
在我的行动中,我创建了表格
这是我的观点
php - 删除 Zend\Form\Collection 的所有元素(带有 DoctrineModule ObjectSelect 的字段集)
我正在开发一个 ZF2 应用程序,它使用 ZF2 表单和 DoctrineModule 水合器在简单的 CRUD 系统中创建/更新实体。实体 (Union) 与另一个实体 (Team) 具有 Doctrine OneToMany 关联,并且该关联由Zend\Form\Element\Collection
表单站点上的 a 表示。使用表单创建新实体或更新现有实体时,一切正常,除了一种情况:清空预先存在的实体的关联集合。当我删除集合的所有元素并单击保存时,表单被弹回并且集合的每个现有元素都显示错误Value is required and can't be empty
。
显示问题的视频:http: //youtu.be/3ucRb6X61c8
代码:
似乎问题归结为 InputFilter,但我似乎无法确定到底出了什么问题。删除集合的 N 个条目中的 (N-1) 个可以正常工作,因此 InputFilter 结构本身没有问题。也许当 POSTed 集合为空时,Zend\Form
不会删除分配给teams
集合每个元素的现有 NotEmpty 验证器?
为 Union 字段集提供了自定义输入过滤器(参见此处teams
),但集合元素没有列出输入。我也尝试过完全删除自定义 InputFilter 并为teams
集合添加合适的 InputFilter 定义,但最终结果是相同的。
那里的任何人都对我在这里做错了什么有任何见解?
php - 表单未正确验证 zend 框架 2
我正在为新系统范围尝试自定义配置。
我被困在使用过滤器的表单验证上。
主要问题:
此表格永远不会得到验证。但让我抓狂的是,这个表格很简单:
和过滤器:
}
令我惊讶的是,我执行 $form->isValid() 之后的错误是这样返回的:
所以这就是问题所在,我什至没有在这些字段上声明验证,只是对于 idModule 和名称输入,我正在浪费时间认为我什至没有声明!
这些验证从哪里来?
编辑:顺便说一句,我什至没有在视图上回显 createdDate 和 updatedDate,只是为了数据库控制,我不需要在 Form 范围内验证这些字段。
Edit2:通过从表单中删除 createDate 和 updateDate,我得到零消息错误,但甚至没有验证表单!我需要表格有效。
zend-framework2 - 为什么不通过表单提交(zf2 表单 + 过滤器)发送数据?
我有问题:
当我填写表格并按下添加按钮时,页面被重新加载,但没有数据添加到数据库中。
的代码NewsController
,add
动作如下:
类AddNewsForm
包括use \News\Form\AddNewsForm as AddNewsForm;
如上。
我试图调试我的代码并意识到,它总是$form->isValid()
返回 false。我试图填写表格的所有字段 - 它说表格无效。如果不是所有的字段都填错了。
我认为问题在于验证,所以我将在这里添加我如何将过滤器添加到表单中。这就是我为我的表单分配过滤器的方式:
类AddNewsInputFilter
包含在此:
我不认为将大约 100 行代码粘贴到那里是好的,所以我将提供一个指向我的 github 存储库中文件的链接(此处提供控制器/文件的完整代码):
- AddNewsForm.php — 文件,我在其中创建表单
- AddNewsInputFilter.php — 文件,我在其中设置 fil
- NewsController.php — 文件,控制器,我称之为创建表单
- 存储库链接——我的模块的根目录
所以问题是$form->isValid();
没有显示表单有效或不正确,我不知道为什么。请注意,该请求正在正确获取并且第一个条件已通过(但第二个条件未通过)。这就是问题所在,这就是我在这里写的原因。
我该如何解决?
谢谢是提前!
mongodb - 如何将嵌入的 Doctrine 文档填充到 Zend 字段集中?
我使用 ZF2+Doctrine+DoctrineMongoODM 模块。我已将Person
文档嵌入到House
文档中:
所以
文档的公共字段House
被保存和填充得很好。我使用带名称的 fieldsetperson
来编辑嵌入的文档字段,因此有一组带有name=person[firstName]
和的输入元素name=person[lastName]
。
嵌入文档的字段已保存但未填充到表单中。
我找到了一种解决方法 - 只需通过字段$vals = (array) $element->getValue();
集对象获取值,然后
$name = preg_replace("/^(.*)\[(.*)\]$/", "\\2", $elem->getName());
$elem->setValue($vals[$name]);
对于每个字段集元素。
有更好的解决方案吗?
validation - ZF2 + 复合键上的重复表单验证
我有一个在两个字段(gid、bid)上有主键的表单。我需要添加验证以阻止重复条目进入数据库。
我已经检查过 ZF2 解决方案。http://framework.zend.com/manual/2.2/en/modules/zend.validator.db.html# exclude-records。虽然这种处理复合键的方法看起来不是理想的方法,但我仍然在尝试它,因为它看起来只是内置的方式。现在它要求我提供第二个字段的值(排除中的值选项),这又是一个问题。正如我正在尝试的那样
我如何获得这个值,因为表单是绝对独立的类/文件,而不是我提交表单值的控制器。这个问题是否存在一些更好的架构解决方案或者一些将提交的字段值传递给表单类的黑客只是解决方案?
注意:我不赞成为此任务构建我的验证插件,因为短时间是功能的限制。
php - Zend Framework 2 Form,未应用正则表达式验证
我使用的是独立的 Zend 表单(我没有使用完整的 ZF2 MVC),并且我指定了以下类来定义表单:
这是我的控制器中的相关代码(简化为仅显示相关部分)
问题是,当我提交表单并将“abc”作为 student_code 的值时,表单返回为有效。根据正则表达式,它应该只接受数字。
所需部分有效;如果 student_code 为空,则表格无效。我的问题是,我错过了什么正则表达式不起作用?