问题标签 [zend-form-fieldset]

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.

0 投票
2 回答
147 浏览

doctrine-orm - ZF2/Doctrine2 - 字段集未验证,数据始终有效

我已经为 Forms、Fieldsets 和 InputFilters 使用抽象类建立了一个结构。表单和字段集具有工厂,而 InputFilters 由 FieldsetFactory 在字段集上创建和设置(使用MutableCreationOptionsInterface传递选项)

我遇到的问题是为表单加载了 InputFilters 但不用于验证数据。所有输入都被接受为有效。

例如,我有一个具有属性的Country实体。nameCountry 的名称必须至少为 3 个字符,最多 255 个字符。当名称为“ab”时,它被认为是有效的。

在有人问之前没有抛出错误,数据只是被接受为有效。

在过去的几天里,我一直在为此烦恼,试图找出我犯错的地方,但找不到。

此外,还有相当多的代码。我把它限制在我认为相关的范围内,虽然:如果你需要更多,就会有更多。我删除了很多类型检查、文档块和类型提示来限制代码行/阅读时间;)

模块.config.php

国家.php

CountryController.php - 扩展 AbstractActionController

AbstractActionController.php - (在这里出错) - CountryController#editAction()使用

CountryForm.php

CountryFormFactory.php

AbstractFormFactory.php - 用于MutableCreationOptionsInterface接收来自控制器函数调用的选项:$form = $this->getFormElementManager()->get($formName, (is_null($formOptions) ? [] : $formOptions))

CountryFieldset.php - CountryForm.php在上面用作基本字段集

AbstractFieldset.php

CountryFieldsetFactory.php -在这里 INPUTFILTER 设置到 FIELDSET

AbstractFieldsetFactory.php

CountryFieldsetInputFilter.php

AbstractFieldsetInputFilter.php - 最后一个!:)


任何帮助将不胜感激。希望您不会对上面的代码感到负担过重。但是我已经反复讨论这个问题大约 3-4 天,并没有偶然发现出了什么问题。

总结一下:

在上面CountryForm创建了一个。它使用CountryFieldset预加载(在CountryFieldsetFactory)中的CountryInputFilter.

在验证数据时,一切都被认为是有效的。例如 - 国家名称“ab”是有效的,尽管StringLength验证器已'min' => 3,定义为选项。

0 投票
1 回答
449 浏览

php - 如何在 ZF3 中继承嵌套字段集的 getInputFilterSpecification 方法

我正在使用类表继承模式为 ZF3 模块开发字段集类中的输入过滤器。ZF3文档说 fieldset 类必须实现Zend\InputFilter\InputFilterProviderInterface,它定义了一个getInputFilterSpecification()方法。

这适用于独立的字段集类,但如果我有一个字段集扩展另一个字段集,则表单getInputFilterSpecification()仅使用来自子项的方法。

由于该getInputFilterSpecification()方法只是返回语句的集合,我想我可以在子方法中添加对父方法的调用,但这似乎不起作用:

如何获取子字段集中的方法以从父方法getInputFilterSpecification()中继承代码?getInputFilterSpecification()

0 投票
1 回答
72 浏览

php - zend framework 3 异步验证和字段集(数组格式不兼容)

我有一个ajax提交的zend表单:

为了验证表单,我必须将数据传递给 Zend 函数setData()

唯一的问题是 - 当表单包含字段集时 - setData 预期数组应该是:

...虽然 jquery 给出的数组是(这是正确的,这就是 zend 将名称分配给字段集子项的方式):

我设法以这种方式转换数组格式:

你知道更简单/更好的方法吗?

0 投票
3 回答
858 浏览

zend-framework2 - zend framework 2/3 集合集自定义属性

从这些问题来看:

Zend framework 2 循环遍历元素集合的元素

如何将参数传递给 Zend 表单集合实例以及如何在 ZF2 中设置自定义字段集标签?

我想没有自定义集合元素的好方法。

例如,有一个像这样的集合:

然后为每个文本元素和/或自动编号的标签定义(此处为当前类)自定义属性,然后输出(只需调用 zend 助手 FormCollection,无需任何自定义视图助手):

我错了吗?

(我之所以这么问是因为我找到了一个很好的解决方案,并且可能有助于发布它)

0 投票
2 回答
1213 浏览

zend-framework3 - 如何将 InputFilter 验证器应用于 ZF3 中的字段集元素

我有一个有两个字段的表格。一个带有验证器的 InputFilter 被应用到它上面。它工作正常。然后我将这些字段移动到一个字段集并将该字段集添加到表单中。现在,字段的分配验证器不存在。验证器对象isValid方法根本不会被触发。那么如何将 InputFilter 验证器应用于字段集中的字段呢?这是你的课程:

文本类验证器

测试类 InputFilter

测试类字段集

测试类表格

测试控制器类

测试控制器工厂类

测试班

测试字段集

更新

我相应地更新了字段集类,以添加 @Nukeface 建议setInputFilter()。但它没有奏效。它甚至没有执行 InpuFilter 类init方法。也许我做错了:

0 投票
1 回答
174 浏览

zend-framework2 - zf 为表单类中的新字段集元素添加输入过滤器

在zend框架中,如何使用表单中的代码为字段集中的新表单元素添加输入过滤器?在下面的例子中,我在 fieldset 类中定义了一组常见的表单元素和一个 inputfilter,并将 fieldset 添加到表单中。之后,我将一个或多个新的表单元素添加到表单代码中的字段集中(我在表单中而不是在字段集中执行此操作,以准备通过表单工厂动态添加元素)。我遇到的问题是为其他元素添加新的输入过滤器定义。

在我的字段集中:

以我的形式:

在此示例中,附加元素被添加到字段集中,但我的代码错误,无法将新定义添加到输入过滤器。

0 投票
2 回答
56 浏览

php - Zend 2 Annotations ComposedObject 不采用字段集属性

我正在尝试创建一个 zend 表单,它完全使用注释来引用单独的字段集。我正在使用ComposedObject注释来执行此操作。但似乎没有添加/使用字段集类内的注释(如 \type 或 \attributes)。

仅使用来自父表单的注释。

例如,如果我要添加@Annotation\Type("number")到父 Form 类,那么输入类型将正确设置为type="number". 但是,如果我要添加@Annotation\Type("number")到 fieldset 类,那么什么都没有,nada,我得到type=""了。我不知道为什么!

这是我的父表格:

这是字段集类Permits\Form\Model\Fieldset\numOfTrips

我正在使用以下方法创建表单:

我将不胜感激任何帮助或指导。

0 投票
0 回答
105 浏览

zend-framework2 - 如何在嵌套集合中使用一个表单字段集?

我正在创建页面来插入数据,就像一本书一样。我在哪里使用 zend 表单字段集和集合。Fieldset 只有两个字段,标题字段和内容字段。标题和子标题具有相同的内容(字段)。

前任:

注意:这里的索引只是为了显示父子关系。

代码如下:

这是主要形式。

此字段集在 BookPointlForm 的积分集合中调用

这是主要字段集它的内容标题和标题的内容

...

0 投票
1 回答
130 浏览

zend-form - Laminas / Zf3 - 从 Fieldset 访问表单参数

我在我的 Laminas 项目中遇到了一个问题。在我的控制器中,我用参数调用了我的表单。我的表单包含字段集的添加功能,我想读取我的字段集中的参数。我怎样才能做到这一点 ?

这是我的控制器中的功能:

这是我的表格:

这是我的字段集

问题是如何将我的参数放入字段集 __construct 或 init 函数中?

0 投票
1 回答
85 浏览

zend-framework3 - Laminas / Zf3 - 从 Fieldset 获取参数,但它返回空值

我按照@crash 的说明进行操作,并获得了在我的字段集中传递的参数值。但有时它会返回一个空值。这是我的完整代码

我的 RapportEffetForm :

我的 RapportEffetFormFactory :

我的 RapportEffetFieldset :

我的 RapportEffetFieldsetFactory :

我的 EffetRapportFieldset :

我的 EffetRapportFieldsetFactory :

我的 CommunForm 课在这里:

和我的 CommunFieldset :

当我在 EffetRapportFielset 的 init() 函数中执行 var_dump 时,我得到了这个

在此处输入图像描述

在同一页面中,我也得到了这个:

在此处输入图像描述

我需要说的是,当我在 RapportEffetForm 上对 $this->parameters 进行回显时,我得到了正确的参数值。

不知道为什么第一次,值不错,(第二次??)为null。也不知道为什么多次显示此值。

这是我所有的信息。希望它可以帮助您也帮助我找到解决方案。

此致 !