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

Passing Variable of arbitrary Name to Template in Mojolicious

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

所以我很自然地存储了这些值,并渲染它们(使用 Mojolicious::Lite)。

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

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

事实证明,data 是存储中的保留关键字。 观察到的效果是,渲染后仅显示 $count_data 中的值...完全忽略模板。也没有错误。

这有点难以调试(它花费了我大约一个小时的理智)。 另外我确定我不是第一个不小心误用了 data 关键字(或任何其他关键字)的人。

我的问题:有没有安全的方法可以将任意名称的变量传递给模板?还是我只能忍受这种可能的名字冲突?

存储采用任意结构,因此您可以存储任意数据的散列。

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

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