如何在Catalyst中使用HTML :: FormHandler创建嵌套表单?

时间:2010-06-18 21:03:10

标签: perl catalyst

我的情况是我们有一个基本记录集,大约有十万条记录。而且,我们正在创建一个单独的应用程序,它共享一些数据集,但不是大多数,因此我们创建一个与原始表具有一对一关系的详细信息表。我想要做的是从原始表中提取现有信息并将其显示为只读,但我希望详细信息表中的字段是可写的。

我开始创建一个包含原始表内容的列表,我希望用户能够通过一个条目无缝地点击“编辑”并被带到表单来创建详细记录,点击保存,并让它更新,或创建记录。

那么,最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

这个问题很老,但是为了帮助未来的搜索者......

如果正确设置了DBIx :: Class结果源,则会自动处理在表单中包含相关表。通过使用另一个字段的关系名称定义复合字段并使用相关表中列的名称定义子字段,可以将相关表拉入表单。

请参阅:HTML::FormHandler::Manual::Fields

并且:HTML::FormHandler::Manual::Database

答案 1 :(得分:0)

这不是一个真正的答案,因为我无法真正为您提供解决方案,但我希望能为您提供一个开始的地方。我认为您需要在HTML :: FormHandler中定义一个表单,该表单表示详细信息表中的一行,然后从多行单行表单构建您的只读表单。本文比我更好地描述了问题和部分解决方案:

http://catdev.blogspot.com/2009/05/defining-form-processing-problem.html

我是Perl和HTML :: FormHandler的新手,并且很有可能有更好的方法来做到这一点。我之前在PHP中“手动”解决了这个问题,但我相信我会在Perl中遇到这个问题。