I am still learning mojolicious and MVC frameworks in general so this just might be a problem where I am thinking about this wrong so if I am please suggest a better way to do the following.
I have a route /route/:param where param is sometimes defined and sometimes not. I am trying to use "param" in the template for that route but I get an error saying "param" requires explicit package name. I know this is due to :param not matching in the route because when I do call /route/value everything works fine.
Is there a way to be able to use the same template for both when "param" is defined and not defined? I am just trying to pre-populate a form off of what is defined in "param" but not making it required to.
In the template I have
<% if(defined($param)){ %><%= $param %><% } %>
Thanks.
It is always safe to refer to stash("param")
, where stash
is a helper function defined in Mojolicious::Plugin::DefaultHelpers
:
<%= stash "param" %>
<%= defined(stash("param")) && stash("param") %>
etc.
It is possible to define a stash (or a flash) variable as a Perl variable within the epl space/template so that it can be reused, if required. e.g.,
% if (my $param = stash 'param') {
$param
% }
In this case the if condition block will be rendered only when the param is defined in the stash, otherwise, it'll be skipped.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With