我有一种情况,我们有一个包含大约十万条记录的基本记录集。而且,我们正在创建一个单独的应用程序来共享一些数据集,但不是大部分,因此我们正在创建一个与原始表具有一对一关系的详细表。我想要做的是从原始表中提取现有信息并将其显示为只读,但我希望明细表中的字段是可写的。
我首先创建了一个包含原始表内容的列表,我希望用户能够通过一个条目无缝地点击“编辑”并被带到表单以创建详细记录,单击保存,然后拥有它更新或创建记录。
那么,最好的方法是什么?
这个问题很老,但为了帮助未来的搜索者......
如果正确设置了 DBIx::Class 结果源,则会自动处理在表单中包含相关表。通过简单地使用其他字段的关系名称定义复合字段并使用相关表中的列名称定义子字段,可以将相关表拉入表单。
这不是一个真正的答案,因为我无法真正为您提供解决方案,但我希望可以为您提供一个开始的地方。我认为您需要在 HTML::FormHandler 中定义一个表单,它代表您的详细信息表中的单行,然后从单行表单的多个实例构建您的只读表单。本文描述的问题和部分解决方案比我有的要好得多:
http://catdev.blogspot.com/2009/05/defining-form-processing-problem.html
我对 Perl 和 HTML::FormHandler 还很陌生,很有可能有更好的方法来做到这一点。这是我以前在 PHP 中“手动”解决的问题,但我确信我会在 Perl 中遇到这个问题。