在Mojolicious中将任意名称的变量传递给模板

时间:2019-07-17 21:03:59

标签: perl mojolicious perl5

我想显示三个数据库表的数量:DataMetaType

所以我自然地将这些值存储起来并渲染(使用Mojolicious::Lite)。

$c->stash(data => $count_data,
          meta => $count_meta,
          type => $count_type,
 );

 $c->render(template => 'tblcount');

结果证明,data是隐藏项中的保留关键字。 观察到的效果是,在渲染$count_data中的值之后,将仅显示……完全忽略了模板。也没有错误。

这很难调试(我的理智花费了大约一个小时的时间)。 另外,我确定我不是第一个误用data关键字(或其他关键字)的人。

我的问题:是否存在将具有任意名称的变量传递到模板的安全方法?还是我不得不忍受这种可能的名字冲突?

1 个答案:

答案 0 :(得分:2)

该隐藏采用任意结构,因此您可以存储任意数据的哈希。

$c->stash(stuff => {data => $count_data, ...});

然后在模板中使用$stuff->{data}