问题标签 [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.

0 投票
1 回答
681 浏览

symfony1 - symfony 执行多个查询以填充重复的表单字段

我的 symfony 项目有一个对象 A,它与对象 B 具有一对多的关系,即

在 A 的表单中,我使用 $this->embedRelation('B') 来显示用于输入/编辑 B 的表单。到目前为止一切都很好。

B 的表单包含一个自动生成的 sfWidgetFormChoice,它是从数据库中自动填充的。然而,当表单 B 多次出现在表单 A 中时,symfony 会多次查询数据库以填充 sfWidgetFormChoice 选择控件:

有没有办法向 symfony 表明它只需要运行一次这个查询?

0 投票
1 回答
1095 浏览

php - Symfony 嵌入式表单 - 多对多关系

我正在使用 symfony 1.4 和 Propel 作为 ORM。我有一个需要在其中嵌入其他表单的表单。另一种形式是连接客户和某个对象的 n:m 关系。我不知道如何嵌入它,以便它为客户显示所有对象。

考虑到以下架构,我想在 Customer 表单中嵌入 CustomerCountryGroup 表单以显示与用户相关的 CuountryGroup 对象列表。

这是我的 schema.yml:

你知道我在哪里可以找到这个问题的一些教程/解决方案吗?

非常感谢

0 投票
1 回答
7176 浏览

symfony1 - symfony 1.4 在新操作中使用后验证器会引发错误

我对表单有以下操作。在 MyForm 定义中,我添加了 post 验证器,因此我可以通过特定条件一次验证两个字段。问题来了,在通过验证后,symfony 向我发送一个错误,并将空值存储在数据库的新记录中。我在这里发布我的代码......我的表单只有两个字段,用户最多从两个列表中选择每个字段来创建新记录。受模式限制,这两个字段的组合是唯一的。此外,我需要验证这些字段的某些组合不允许创建新记录。

动作.class.php:

MyForm.class.php

当我注释掉 mergePostValidator 行时,一切正常,但是我无法验证不接受我的两个字段的某些组合的条件。

并且当按原样使用此代码时:如果组合无效,一切正常,表单再次出现“字段关系无效!” 信息。但如果组合有效,symfony 会抛出以下错误:

警告: 在第 169 行的 /path/to/symfony/lib/plugins/sfDoctrinePlugin/lib/form/sfFormDoctrine.class.php 中为 foreach() 提供的参数无效

可捕获的致命错误: * 传递给 Doctrine_Record::fromArray() 的参数 1 必须是一个数组,给定 null,在第 150 行的 /path/to/symfony/lib/plugins/sfDoctrinePlugin/lib/form/sfFormDoctrine.class.php 中调用并在第 1970 行的 /ṕath/to/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Record.php 中定义*

警告: 在第 1973 行的 /path/to/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Record.php 中为 foreach() 提供的参数无效

然后是一些关于无法修改标题以响应的警告/错误(但我自己没有修改任何内容,也许只是操作 Create 方法中的 $this->setTemplate('new') ......

我正在使用 Symfony 1.4.9,但也尝试使用 SVN 服务器(rev 32070)的 1.4 开发分支并得到相同的结果。阿帕奇 2.2、PHP 5.2.6

0 投票
5 回答
1296 浏览

php - 为表单小部件赋值

我在 _form.php 中有一个表单小部件

symfony 创建了基类:

我手动重新创建了下拉列表,这样我就可以合并一个“onchange”事件:

我如何分配一个值,echo $form['catcher_id']因为现在当我从下拉列表中选择一个值并单击提交时,验证器说 catcher_id 是必需的(因为我手动创建了下拉列表),那么我该如何手动设置值???

我有:

但它不起作用。

0 投票
1 回答
1760 浏览

symfony1 - symfony 1.4在表单上传后处理文件,不将数据发送到数据库,但将文件保存在磁盘中

我有一个带有 sfWidgetFormInputFile 字段的表单。我正在上传图片,上传后,我想对刚刚上传的文件做一些处理。

我知道我可以为此使用 valid_file_class。我在我的自定义类中覆盖了 save() 方法,并且文件被正确保存,但在数据库中的存储不起作用,它只是向我发送文件名字段的空值。我错过了什么吗?

以下是相关代码:

0 投票
2 回答
1644 浏览

symfony-1.4 - Symfony - 在 Propel 中嵌入表单

我有一个管理模块,它有一个文件输入文件,我想上传一个文件。我希望将文件作为 blob 上传到数据库,因为这是我的限制。我知道这是不好的做法,但我无法将文件添加到文件系统。

我有以下架构:

到目前为止,我已经在 BlobForm.class.php 中创建了所有小部件和模式,然后我尝试将此表单嵌入到我的 PressPhotoForm.class.php

现在,当我选择文件并上传时,它似乎确实已添加到 blob_data 表中,但在 press_photo 表中,blob_data_id 为空白,并且输入小部件上没有复选框表示有图像。

有人可以阐明如何在上传时将 blob_data_id 放入 press_photo 表中吗?

谢谢

编辑:

这是我的表格:

}

类 PressPhotoForm 扩展 BasePressPhotoForm {

}

谢谢

0 投票
1 回答
400 浏览

symfony1 - Symfony Embedded Relation Many2Many - 链接唯一字段或创建新字段

我正在使用嵌入式关系来允许用户编辑/将书籍添加到图书馆,并以相同的形式添加/删除在自动生成的管理员中写书的 n 个作者。

这是我的问题:作者姓名是唯一的,因此当我输入已经存在的作者时,sfValidatorDoctrineUnique 会产生错误。

已存在具有相同“名称”的对象。

我想要做的是捕获这个错误并告诉表单不要尝试重新添加现有作者。

我应该为此使用事件系统,还是修改验证器,或者我该怎么做?

非常感谢你

PS:经过一番搜索,我发现了一些可能是解决方案但我还没有让它工作的东西 http://symfonyguide.wordpress.com/2009/09/28/symfony-forms-saving-process/

0 投票
1 回答
2730 浏览

symfony1 - symfony 1.4 在选择小部件中显示图像作为选择

我有一个带有特定选择小部件(DoctrineChoice)的表单。选项引用服务器中的某些图像文件,我使用 expander=true 选项(用于复选框/单选按钮)

有没有办法通过显示每个选项的图像来显示小部件?默认情况下,我只获得数据库中选项的 ID。

使用 firebug,我注意到生成的 HTML 有一个带有每个选项 id 的标签,而且,我设法用某个图像更改了它,所以我猜我需要做的就是更改文本每个选项的标签。即使小部件的“标签”选项只是更改了整个选择的标签,所以这不会......

谢谢!

0 投票
2 回答
570 浏览

symfony-1.4 - symfony - 保存 blob 数据图像大小

我有一个表单,PhotoForm,它有一个嵌入的 BlobDataForm。

我可以很好地保存 blbo 数据,我的问题来了,使用 blob_data 表。

我有 2 个字段,image_width 和 image_height。

当 blob 被保存时,我也想保存这些详细信息。

我已经覆盖了 doSave();

我还需要覆盖 saveEmbeddedForms() 吗?

谢谢

编辑:

好的,所以看来我需要覆盖:

过程值()

我只是无法获取图像的宽度和高度属性。

有谁知道我会怎么做?

谢谢

0 投票
2 回答
3085 浏览

symfony1 - 更新/编辑上下文中的 sfValidatorDoctrineUnique

我在两个不同的上下文中使用表单类:既可以创建新记录,也可以编辑该记录。我设置了如下验证器来检查 URL 字段是否唯一。

当我创建新记录时,验证器工作得很好。但是,在编辑现有记录时,它会引发错误,因为它将自己检测为重复。换句话说,如果我编辑记录但不更改 URL,则会引发重复错误。

这一定是一个常见问题,所以我想知道 Symfony 的处理方式是什么?基本上我希望它在保存时忽略自己(不存在重复),但仍然运行后验证器以确保不存在真正的重复。