Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 访问控制器设置的隐藏值的mojolicous模板_Perl_Templates_Mojolicious_Perl Stash - Fatal编程技术网

Perl 访问控制器设置的隐藏值的mojolicous模板

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

我对Mojolicous还不太熟悉。我曾尝试在文档、StackOverflow和在线示例中对此进行研究。我还没有找到一个充分的答案。希望有人能帮助我

我有一个控制器方法/操作,应该显示用户的配置文件和帐户数据。在方法中,我从DB中提取User和Account对象,并将它们推入隐藏,以便模板可以访问它们。我使用了
转储程序
,以确保它们存在于隐藏预渲染时间

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'
}