繁体   English   中英

根据Symfony 1.4 / Doctrine 1.2中的数据库查询创建唯一的表单字段

[英]Create unique form fields based on database query in Symfony 1.4/Doctrine 1.2

我正在执行一个疯狂的项目,我们碰巧使用了Symfony 1.4,因此,我希望在理想情况下,尽可能将这个项目保持在框架的功能范围内。 不幸的是,尽管进行了大量研究和搜索,但我还没有找到一种基于对数据库查询生成sfWidgetForm元素的方法。

我将通过解释项目流程来概述其目的。

  1. 用户提交的表单包含我们的广告客户所需的大多数数据。
  2. 基于此数据,可以调用数据库中的行。 也许此表格已填写,并且用户声称对园艺感兴趣。 基于此相关性,这将产生一行与园艺相关的表单字段(或几行,但无论如何)。
  3. 这是重要的部分。 与园艺相关的内容实质上是填写表单的概述,这些表单对于对园艺感兴趣的人完成提交。 我们将获得表单元素的类型,名称,标签,需求状态,启用状态等。基于这些元素的ID,我们可以从另一个表中查看它们是否相互依赖。 如果是这种情况,可以使用javascript处理。 那是另一个故事。
  4. 此时,我可以使用Symfony中的自定义构建组件来创建表单(可以)。 这些将输出正常工作的表单,但是sfValidator小部件将不支持它们,这是不幸的。 我想做的是以某种方式告诉一些神奇的表单类,以基于X准则,小部件和验证器来构建表单。
  5. 表单完成并输出后,用户将填写其余字段,第二个表单将通过验证,并将来自这两种表单的全部数据发送给广告商。

我在这里最感兴趣的是有关在Symfony中动态构建表单的数据。 我可以轻松地使用组件进行构建,但是我真的不想要。 特别是因为我计划很快退出,并且在框架内保留一些内容对于我的队友来说是理想的选择。

感谢您的任何想法! 尽管从外面很无聊,这是一个非常令人兴奋的项目-我以前从未动态生成过表格,更不用说在Symfony中了。 应该很酷。

您当然可以根据查询建立选择列表/单选按钮/复选框-我不确定这是否正是您想要的?

请参阅http://www.symfony-project.org/api/1_4/sfWidgetFormDoctrineChoicequery参数-我经常使用它并且效果很好。

动态创建整个表单将非常困难IMO-我认为您至少需要定义一些规则,以便可以显示/隐藏某些表单元素。

有关如何解决此问题的功能示例,请参见: http : //pastebin.com/NrJeADAk

它运作良好。 如果您的数据库正确且一致地描述了表单,则您甚至可以通过通过表单提交其描述来创建新表单。 我已经为团队工作完成了此任务,并且在现场进行了大量的验证,到目前为止,他们还没有设法创建导致问题的单一表单。 我经常使用SO,因此如果您偶然发现此问题并想了解更多信息,请随时给我发消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM