我正在尝试将隐藏的默认“ title”变量设置为动作名称的英文版本。例如:
sub customer_orders {
...
}
将有:
title => 'Customer Orders',
可在藏匿处使用,以供模板使用。有谁知道如何做到这一点?谢谢!
答案 0 :(得分:0)
您可以通过调用方获得子程序名称:
my $sub_name = (caller(0))[3];
。
从您的输出来看,您可能还需要大写并将_替换为空白
$sub_name =~ s /_/ /g;
我会这样大写:
my $title = join(' ', map{ ucfirst lc }split(' ', $sub_name) );
答案 1 :(得分:0)
在Mojolicious模板中,$c->action
的名称似乎为$action
。因此,您可以执行以下操作:
<title><%= title || action_to_title($action) %>
这样其他模板可以覆盖标题,如下所示:
% title 'My Override Title'
如果未设置action_to_title
,则可以添加title
助手来准备标题操作。