问题标签 [symfony-forms]
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 - 为什么 $form['_csrf_token']->render(); 在 symfony 1.4.8 中渲染一个没有值的隐藏输入?
我使用 symfony 1.4.8 并且在尝试呈现隐藏的 csrf 表单字段时,没有将值添加到呈现的字段中。我以前做过这个没有问题。请参阅下面的示例以查看代码和呈现的输出。
代码:
生成:
代码:
生成:
如您所见,第二种方法生成 csrf_token 的值,但它也生成所有其他行信息。该render()
方法应该只生成带有值的“小部件”(在这种情况下是隐藏的输入字段)。由于某种原因,它没有增加价值。
php - Symfony 表单:显示一个复选框(初始状态为未选中)
我正在为一个项目使用 Symfony 1.3.x。
在我的一种形式的 configure() 方法中,我有以下代码:
这个想法是向用户显示一个复选框(默认未选中),用户必须在表单验证之前检查它。
问题是当我显示表单时,复选框总是已经选中(即选中) - 这违背了使用复选框强制用户确认的目的。
有谁知道如何解决这个问题?
php - Symfony 对 CRUD 操作的访问限制
我有简单的 symfony 生成的 CRUD 函数。有文章类和文章所有者。我想阻止当前文章所有者以外的其他用户编辑它。我正在考虑自定义我自己的过滤器或验证器,但是当我实现验证器时,一些用户可以输入编辑表单(他们不能只发送它)。但是当我将实现用户过滤器时,使过滤器仅在某些操作之前执行会出现问题(在这种情况下进行编辑)。
我该怎么做?
php - 本地化 sfWidgetFormChoice 标签
我只是想知道如何将 sfWidgetFormChoice 的标签按照http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10中的建议在模型表中定义时进行本地化?
提前感谢:)
symfony1 - Symfony 表单开始和结束时间小部件
我需要在表单上有一个开始和结束时间小部件。
即用户选择一个日期,然后选择开始和结束时间。
在标准日期小部件中,您可以选择日期和时间,但是我也需要能够选择完成时间。
你们中有人做过吗?
我可以创建 3 个单独的小部件:
- 日期
- 开始时间
- 时间结束
保存表单后,我将对对象进行更新以将所有值合并为一个。例如,我将获取日期并将开始时间添加到它,然后保存到字段“start_date”,然后我将获取日期并将结束时间添加到它,然后保存到字段“end_date”。然而,这似乎是一种非常冗长的方式来做一些对于表单框架来说应该是相当微不足道的事情。
你会这样做吗?多谢你们!
forms - 具有嵌入关系的表单不会保存 Symfony 1.4 Doctrine
我在 Mix 表单中嵌入了 Mutt 表单:MixForm.class.php:
我需要为 Mix 表新创建的 id 表单来填充 Mutt 表中的 mix_id 字段。
这是我在 modules/mix/actions/actions.class.php 中的操作
表单验证正常工作,但不会保存在任一数据库中。我究竟做错了什么??
validation - Symfony 1.4 中带有 sfValidatorCallback 的 embedForm 的预验证
我有一个 SymfonyForm,它有 1:n embedForm(s)。主窗体和 embedForm 类有自己的 PreValidation,它实现了条件验证。EmbedForm 类的一部分如下所示:
主窗体的预验证是类似的。
当我提交表单时,主表单预验证工作正常。
在 embed-Form 中,“SOME_FIELD”得到一个 required-validation-error,尽管我在 embedForm 的 preValidation 中将其显式设置为setOption('required', false)。
在 embedForm 中使用预验证时有什么需要考虑的吗?那么mergePreValidator呢?有什么提示吗?
提前致谢!
php - 带有“额外”字段的管理表单
我有一个名为AccountImport
. 此表单位于管理员生成的模块中。除了直接映射到该对象属性的字段之外,我还需要几个额外的字段。
如果我只是将字段添加到AccountImport
表单中,它将无法正确保存,因为表单将不再匹配AccountImport
对象。
如果我手动创建模板并以这种方式拼接额外的字段,我将丢弃管理生成器免费提供的所有内容(即格式化、“返回列表”按钮、保存按钮)。
做我想做的事情的“好”方法是什么?
internationalization - Symfony 1.4 形式,有条件地以嵌入形式抛出 sfValidatorError
我有页面对象:
以及带有嵌入式 i18n 表单的 PageForm:
当 is_course 设置为 false 时,不需要字段 course_name 和 course_description。但是,如果启用了 is_course,验证应该会抛出需要 course_name 和 course_description 的错误。
我已阅读“Symfony 高级表单”指南和其他一些帖子,但我不知道应该在 PageForm 中使用 sfValidatorCallback 还是在 PageTranslationForm 中使用 PostValidator?我尝试以这种方式使用 sfValidatorCallback:
但我不知道如何在 $values['pl']['course_description'] 中抛出错误,因为 Symfony API 说 _what_name_ 应该是一个错误数组。
我真的很困惑在 symfony 中验证表单的过程中是什么。
//编辑
我在 PageTranslationForm 中做了一些更改,现在看起来像这样... //PageTranslationform.class.php
它几乎可以工作,但是......只有在 PageForm is_course 设置为“true”时才应该启用这个验证器。如何在 PageTranslationForm 的 checkCourses 函数中从 PageForm 访问字段“is_course”?
//解决方案
谢谢杰里米,我用了你的想法,终于得到了这个解决方案:
感谢您的建议,它工作得很好,我希望它会有所帮助:)
php - sfWidgetFormSelect 是否提供所选项目的字符串或整数?
我有一个烦人的问题。我试图找出表单的哪些字段已更改,然后将其插入表中。我设法在 doUpdateObject 中进行了 var_dump,如下所示
似乎 $this->getObject()->getModified 似乎可以通过将其设置为 true 或 false 来为我提供前后值。
我现在面临的问题是,在某种程度上,sfWidgetFormSelect 似乎将我的一个字段保存为字符串。在保存之前,完全相同的字段是一个 int。(我在之前和之后都通过 var_dump 得到了这个想法)。
以下是两个 var 转储的结果显示:
这似乎使教义认为这是一种修改,因此给出了误报。
在我的基本形式中,我有
最后在我配置的 Form.class.php 中,我重新配置了文件:
statuses 是一个包含 {""a", "b", "c", "d"} 等值的数组
我只想将状态索引存储在数据库中。
还有如何将更改插入另一个数据库表?假设我的日志表?
任何关于为什么会发生这种情况的想法和建议都值得赞赏,我一直在试图弄清楚并在谷歌上浏览各种关键字,但无济于事。
谢谢!
编辑:
好的,所以我在我的模式中创建了另一个字段,整数只是为了测试。我创建了一个条目,保存并编辑了它。
这次同样的事情发生了!