Perl 访问控制器设置的隐藏值的mojolicous模板
我对Mojolicous还不太熟悉。我曾尝试在文档、StackOverflow和在线示例中对此进行研究。我还没有找到一个充分的答案。希望有人能帮助我 我有一个控制器方法/操作,应该显示用户的配置文件和帐户数据。在方法中,我从DB中提取User和Account对象,并将它们推入隐藏,以便模板可以访问它们。我使用了Perl 访问控制器设置的隐藏值的mojolicous模板,perl,templates,mojolicious,perl-stash,Perl,Templates,Mojolicious,Perl Stash,我对Mojolicous还不太熟悉。我曾尝试在文档、StackOverflow和在线示例中对此进行研究。我还没有找到一个充分的答案。希望有人能帮助我 我有一个控制器方法/操作,应该显示用户的配置文件和帐户数据。在方法中,我从DB中提取User和Account对象,并将它们推入隐藏,以便模板可以访问它们。我使用了转储程序,以确保它们存在于隐藏预渲染时间 MyApp::User中的控制器操作 sub show_public_profile { my $self = shift; r
转储程序
,以确保它们存在于隐藏预渲染时间
MyApp::User中的控制器操作
sub show_public_profile
{
my $self = shift;
return $self->render_not_found if ( ! defined $self->stash('username') );
my $user = MyApp::User->new( username => $self->stash('username') );
my $loaded = $user->load( speculative => 1 );
if ( defined $user && $loaded != 0 )
{
my $account = $user->account;
$self->stash( user => $user, account => $account );
$LOGGER->debug( 'pre-template stash: '. Dumper($self->stash) );
return $self->render;
}
else
{
return $self->render_not_found;
}
}
但是,一旦我点击了模板,我填充到隐藏中的内容就不存在了
占位符/测试模板:user/show\u public\u profile.html.ep
% my $user = stash 'user';
% my $account = stash 'account';
<pre>stash = <%= dumper stash %></pre>
<pre>$user = <%= dumper $user %></pre>
<pre>$account = <%= dumper $account %></pre>
<h1>Profile for <%= $user->{'username'} %></h1>
这里有我做错什么的线索吗?我使用的是全Mojolicious,而不是Mojolicious::Lite,大多数示例都引用它。而且,我已经尝试了我能找到的每一种示例代码排列。我错过了什么
谢谢 那么在MyApp::User
控制器操作中,您创建了MyApp::User
实例吗?或者这两个MyApp::User
s是不同的?您使用哪个数据库库?
stash = {
'action' => 'show_public_profile',
'controller' => 'user',
'mojo.captures' => {
'action' => 'show_public_profile',
'controller' => 'user',
'username' => 'test_user'
},
'mojo.routed' => 1,
'mojo.started' => [
1384869014,
663017
],
'username' => 'test_user'
}