gpt4 book ai didi

perl - 如何在模板工具包中轻松创建表 View in perl/Catalyst

转载 作者:行者123 更新时间:2023-12-02 17:52:41 25 4
gpt4 key购买 nike

我正在使用 Perl 的 Catalyst 框架开发一个应用程序。在尝试将表示逻辑排除在模型之外时,我正在 VIEW(模板工具包)中寻找一种从给定数据结构生成 HTML 表的方法。我目前使用 HTML::Table::FromDatabase 从 SQL 查询生成 html 表但这目前在模型中。我希望将表示逻辑与 View 隔离,而不是将其放在模型中。对此的任何建议都会有所帮助

最佳答案

这是凭内存而写的,只是即兴发挥,所以请考虑它未经测试。这是一种自动迭代列和记录的简单方法。

假设子模型与基于 DBIx::Class 的模型类似 -

sub some_action : Local Args(0) {
my ( $self, $c ) = @_;
my $rs = $c->model("SomeTable")->search({},{rows => 10});
$c->stash( some_rs => $rs );
}

然后是匹配的模板-

[% records = some_rs.all %]
[% RETURN UNLESS records.size %]
[% columns = records.0.columns %]
<table>
<tr>
[% FOR column IN columns %]
<th>[% column | ucfirst | html %]</th>
[% END %]
</tr>

[% FOR item IN records %]
<tr>
[% FOR column IN columns %]
<td>[% item.${column} | html %]</td>
[% END %]
</tr>
[% END %]
</table>

关于perl - 如何在模板工具包中轻松创建表 View in perl/Catalyst,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6194061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com