Symfony:嵌入式表单集合中的独特选项

Posted

技术标签:

【中文标题】Symfony:嵌入式表单集合中的独特选项【英文标题】:Symfony: unique options in embedded form collection 【发布时间】:2016-07-17 13:33:00 【问题描述】:

我在 Symfony 中有一个嵌入式表单集合。哪个很好用。我正在使用多对多关联映射。 除了我想创建(使用 javascript?)表单,以便只有唯一值可用。在我的示例中,我有一个可以存在许多用户的组织。当我在这种情况下添加用户“L”并且我想添加第二个用户时,我想阻止该用户“L”在另一个下拉列表中可用。 我嵌入表单集合的方式与 Symfony 的文档学习我的方式完全一样。 (http://symfony.com/doc/current/cookbook/form/form_collections.html)

下面是它现在如何工作的示例(在此示例中,我想防止在下拉列表中用户“L”作为选项可用。 非常感谢!

【问题讨论】:

最简单的方法是用js,当另一个改变时更新select的元素(onChange)。 【参考方案1】:

不幸的是,您无法让 HTML 表单以这种方式运行。 HTML 表单只是没有任何复合(或依赖)<select> 小部件。所以,去这里的正确方法是:

    验证表单服务器端,不允许两个选择框中重复值;

    将一些 JavaScript 代码添加到呈现表单的视图中。也许这段代码应该监听<select>s'onChange事件,一旦接收到事件,在第一个框中选择的选项应该接收disabled属性或被删除。

【讨论】:

以上是关于Symfony:嵌入式表单集合中的独特选项的主要内容,如果未能解决你的问题,请参考以下文章

访问视图中的嵌套表单字段(嵌入表单集合)

Symfony2 - 表单集合 delete_empty 失败

Symfony 渲染一个集合表单类型原型

如何从子表单中获取父 Symfony3 表单的值?

Symfony2 嵌入式表单删除按钮功能

Symfony2 - 验证不适用于嵌入式表单类型