问题标签 [craueformflow]

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 投票
7 回答
8055 浏览

forms - Symfony2 表单重复元素自定义标签

我正在使用 Symfony2 和CraueFormFlowBundle创建一个多步骤表单。除了我重复的电子邮件字段外,一切都很顺利。为了我,我无法找到如何放置我想要的标签。我正在使用 form_widget(...) 在 Twig 视图中自己渲染表单并编写标签。我按照客户的要求定位一切。现在,他希望看到电子邮件标签为“电子邮件*”和“确认电子邮件*”(星号,因为它们是必需的)。如果我使用 form_row() 渲染重复的元素,错误将不再显示在表单上(但我可以控制标签,snap)。显示错误的唯一方法(不要问我为什么)是使用指向整个重复元素对象的 form_widget(form.giver.email) 。问题是,使用 form_widget 呈现整个重复元素使我无法控制标签。

通过渲染整个重复元素,它使用“first_name”和“second_name”参数打印标签。出于显而易见的原因,我不能在这些参数中使用大写字母、破折号或星号。如果我尝试在选项数组中设置标签,则该标签将传递给 Symfony2 文档中所述的两个字段...

我尝试在 twig 中使用“.first”和“.second”进行打印,但我收到一条错误消息,指出它们在 FormView 中不存在。

现在我想要的是能够分别设置两个标签!这是我当前的代码:

这会将标签打印为“电子邮件”和“确认”。这是使用“选项”数组:

这会将“TESTTT”标签打印到两个重复的字段。对此我能做些什么吗?如上所述,如果电子邮件不相等或为空白,则使用 form_row() 不会在表单提交时显示错误。所以我只能使用 form_widget() 并渲染整个重复的对象。

在此先感谢您的时间。

0 投票
2 回答
1968 浏览

forms - 如何在 Symfony2 中添加新的表单布局?

在我的 Symfony2 项目中,我注意到渲染表单只有两个布局选项:

form_table_layout.html.twigform_div_layout.html.twig

这些都驻留在 中symfony\src\Symfony\Bridge\Twig\Resources\views\Form,我想在我的app\Resources目录中的某个地方添加我自己的一个。

form_list_layout.html.twig我遇到的唯一问题是,当我将新的布局文件app\Resources\views\Form

我已经调整我config.yml的告诉它包括新的布局,但也许我做错了什么:

编辑:好的,我现在让 Symfony2 在正确的位置寻找,但它似乎对表单的呈现没有任何影响(我将表格布局文件的内容复制到我的新列表布局文件中进行测试理论,而我的表单仍然使用<div>标签呈现。这可能是CraueFormFlowBundle我使用的引起的,所以我会检查一下)。

工作config.yml

编辑 2: 看起来与 没有任何关系CraueFormFlowBundle,我的配置中是否有任何内容可能导致它忽略全局表单布局?

编辑:实际上,它正在工作。一旦我将布局文件更改为包含列表元素而不是表格布局内容,它看起来还不错。

0 投票
3 回答
1733 浏览

php - Symfony2:验证不是实体的对象

我正在使用 CraueFormFlowBundle 拥有一个多页表单,并且正在尝试对某些字段进行一些验证,但无法弄清楚如何做到这一点。需要验证的对象不是实体,这给我带来了麻烦。

我尝试在我的表单类型类的 getDefaultOption 函数中添加一个 collectionConstraint,但这不起作用,因为我收到“类型数组或 Traversable 和 ArrayAccess 的预期参数”错误。我尝试在我的对象类中使用注释,但似乎没有考虑到它们。如果类不是实体,是否考虑注释?(我将 enable_annotations 设置为 true)

无论如何,这样做的正确方法是什么?基本上,我只想验证“年龄”是一个整数......

编辑:添加代码,使用注释处理验证

作为 Cyprian,我很确定使用注释应该可以工作,但是它没有......这是我尝试的方法:

在我的控制器中:

在我的 PoemDataCollector 类中,这是我的数据类(服务 yop.poem.datacollector):

编辑2:

这是服务实现:数据类(PoemDataCollector)似乎链接到流类而不是表单。这就是没有验证的原因吗?

如何在遵守 craueFormFlowBundle指南的同时进行验证?

该指南规定:

我应该在哪里声明使用这些验证组的约束..?

我试过:

但它没有被考虑在内。

编辑3:

好的,更好的是,名称验证似乎正在使用:

虽然消息没有出现...我已将 {{ form_errors(form.name) }} 和 {{ form_errors(form) }} 放入我的模板中...为什么不显示?

但:

根本不工作...

编辑4:

好吧,我现在设法让我的验证工作了。但我找不到显示错误消息的方法。他们不应该在使用时显示:

或者

在我的模板中?就我而言,当验证失败时,我会返回表单中的同一步骤,但不会显示错误消息。此外,$form->getErrors() 返回一个空数组!如何处理错误?

0 投票
1 回答
898 浏览

php - 无法使用 CraueFormFlowBundle 上传文件

我正在尝试使用CraueFormFlowBundle以多步骤形式上传文件。

一切正常,但在流程结束时,我的实体从未像以前那样使用文件路径更新

这基本上是我想要做的:

虽然我的实体是这样设置的:

似乎当$flow->saveCurrentStepData();被调用时,$form['file']被填充并指向临时文件。

我不明白的是,为什么在下一步中,文件值不会存储在会话中。

我已经扩展了这样的getSessionData()方法Craue\FormFlowBundle\Form\FormFlow

正如预期的那样,这给了我除了“文件”之外的所有表单数据......

如何让文件上传与此捆绑包一起使用?

0 投票
1 回答
1233 浏览

forms - 编辑现有实体时导航 CraueFormFlowBundle

我使用CraueFormFlowBundle创建了一个多页表单创建了一个多页表单。使用这个表单,我可以创建一个新的实体对象或编辑一个现有的。

然后我添加了设置

允许在表单的页面中来回导航,但是当使用表单编辑现有对象时,我希望能够直接跳转到表单中的任何页面。这似乎不起作用 - 对象数据已加载,我可以反复按下一步,直到到达所需的页面。
有没有办法在使用 CraueFormFlowBundle 编辑时呈现页面导航?

我的模板包括:

创建导航。这是编辑操作:

0 投票
1 回答
1014 浏览

php - 处理具有多个实体关系的复杂 Symfony2 表单

我有一个表单(仍未完成并且缺少许多字段),它作为带有步骤的向导处理,其中处理来自多个实体的字段。这是表单本身:

我有一个关于data_class在这种情况下如何处理参数的问题,所以我不必在控制器中做魔术。当我说魔术时,我的意思是:

由于 'data_class onEmpresaFormType is set toUsuarioBundle\Entity\Empresa' 那么我需要处理任何额外的参数,如上例所示的 getter/setter,这对于复杂/大表单来说是很多工作。

在示例表单中,字段tipo_tramite将保留在类中,ComunBundle\Entity\Producto但字段oficina_regional将保留在类中ComunBundle\Entity\SolicitudUsuario,因此与其他甚至没有放置在此处但它们在表单中的人一样,总共应保留为 3 或 4 个实体,包括许多关系案件,你如何处理?

我知道有CraueFormFlowBundle可能涵盖此流程/流程,但不确定它是否是解决方案。

有什么建议吗?

0 投票
1 回答
133 浏览

php - 通过分隔面板或 div 上的每个视图来自定义表单步骤呈现

我在开发中使用CraueFormFlowBundle,并且我正在使用 Fuelux Wizard 2来渲染我的向导。stepList_content.html.twig我已经设法通过覆盖我的目录上的模板来更改在 CraueFormFlowBundle 中绘制选项卡的方式,app/Resources但找不到对表单内容本身执行相同操作的方法。Wizard 组件的想法是在单独的 div 上绘制每个步骤,例如:

我怎样才能得到这个工作?这是可能的?

0 投票
1 回答
1323 浏览

php - 在最后一步中,Craue 表单流程在 $flow->isValid() 上返回 false

我使用CraueFormFlowBundle制作了表单向导,它一直工作到 $flow->isValid() 失败的最后一步,并且它不断呈现最后一步,而不是转到所需的表单向导操作结束。

这是理解我犯错的地方所必需的代码:

控制器:

服务.yml:

预订类型.php:

预订流程:

并在最后的树枝文件中:

根本没有额外的验证,只有那个字段不能为空。我到了最后一步,当我单击Finish按钮时,我认为 Symfony 会生成带有“表单有效”值的 JSON,但我得到的只是一遍又一遍的最后一步。当我调试该部分时,单击完成会给 $flow->isValid($form) 错误,尽管前面的每个步骤都是正确的,我无法在这里返回 JSON 响应。

我还在 twig 中转储 form 和 form->getErrors 值,但没有什么类似于我遇到了一些错误。如果我尝试持久化该数据,它将成功持久化。

我在 bundle 的 git 页面上没有找到解决方案。你们在这里也许知道我应该在哪里寻找解决方案?

0 投票
1 回答
997 浏览

php - Symfony 2:使用 CraueFormFlowBundle 和 FOSUserBundle 的多步骤表单

对于我的应用程序,我必须创建一个用于注册新用户的多步骤表单,因此我安装了CraueFormFlowBundle,并且我也使用 FOSUserBundle。

对于我的注册表单的第一步,我想用 FOSUserBundle 注册用户信息(登录名、密码...),然后用户将被重定向到表单的下一步。

因此,我将表单类型的集合嵌入到称为“RegistrationEtablissementForm”的单一类型中。

但是当我尝试渲染我的多步骤表单的视图时,我遇到了这个错误:

警告:FOS\UserBundle\Form\Type\RegistrationFormType::__construct() 缺少参数 1,在第 14 行的 C:\wamp\www\likabee_3\src\AppBundle\Form\RegistrationEtablissementForm.php 中调用并定义

类型 RegistrationEtablissementForm :

第一种形式类型:

第二 :

第三个:

在我的 services.yml 文件中,使用 FOSUserBundle 注册并启用了多步骤表单的表单具有服务:

在我的控制器中,我创建了这个函数来在视图中呈现表单:

我搜索了几天的解决方案,但我没有找到它......

感谢您的帮助,对不起我的英语;)

0 投票
1 回答
2387 浏览

symfony - Symfony2,使用 CraueFormFlowBundle 形成多步骤

我正在尝试使用CraueFormFlowBundle构建多步骤表单。目前,我可以进入第一步(用户信息),但是当我点击“NEXT”按钮时出现错误。

我的第一步是基于我的User实体的表单数据类型,第二步是基于实体Etablissement(另一个实体)的另一种表单数据类型。

有我的错误信息:

表单的视图数据应该是 AppBundle\Entity\Etablissement 类的一个实例,但它是 AppBundle\Entity\User 类的一个实例。您可以通过将“data_class”选项设置为 null 或添加将 AppBundle\Entity\User 类的实例转换为 AppBundle\Entity\Etablissement 实例的视图转换器来避免此错误。

文件配置步骤:

在我的控制器中:

我认为当我进入第二步时,表单等待用户类型,而不是 Etablissement 类型,但我不知道如何解决这个问题......

提前致谢 ...