我仍在学习一般的Mojolicious和MVC框架,因此在我思考此错误时这可能是一个问题,因此,请提出一种更好的方法来进行以下操作。

我有一个路由/route/:param,其中有时会定义参数,有时则没有。我正在尝试在该路由的模板中使用“param”,但收到一条错误消息,说“param”需要显式的软件包名称。我知道这是由于:param在路由中不匹配,因为当我调用/route/value时一切正常。

在定义和未定义“参数”的情况下,是否有办法对两个模板使用相同的模板?我只是试图根据“参数”中定义的内容预填充表单,但不要求这样做。

在模板中我有

<% if(defined($param)){ %><%= $param %><% } %>

谢谢。

最佳答案

引用stash("param")总是很安全的,其中 stash Mojolicious::Plugin::DefaultHelpers中定义的辅助函数:

<%= stash "param" %>
<%= defined(stash("param")) && stash("param") %>
etc.

关于perl - Mojolicious引用存储变量,但并不总是定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16943439/

10-13 08:51