将任意名称的变量传递给 Mojolicious 中的模板
Passing Variable of arbitrary Name to Template in Mojolicious
我想显示三个数据库表的计数:Data
、Meta
和 Type
。
所以我很自然地存储了这些值,并渲染它们(使用 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}
。
我想显示三个数据库表的计数:Data
、Meta
和 Type
。
所以我很自然地存储了这些值,并渲染它们(使用 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}
。