我需要传递结果
Mojo::mysql
到HTML中的$variable
#!/usr/bin/env perl
use Mojolicious::Lite;
use Mojo::mysql;
helper mysql => sub {
state $pg = Mojo::mysql->new( 'mysql://mysql://sri:s3cret@localhost/db' )
};
get '/index' => sub {
my $c = shift;
my $db = $c->mysql->db;
$db->query( 'select now() as time' )->hash;
};
app->start;
__DATA__
@@ index.html.ep
<!DOCTYPE html>
<html>
<head><title><%= title %></title></head>
<body><%= $db %></body>
</html>`
我需要将$db
的结果传递给索引,但我不知道如何做到这一点。
答案 0 :(得分:3)
您从未呈现过index
模板。为此,请在控制器上调用render
方法。您的存储中的任何变量(或渲染函数的其他参数)都会转换为模板中的变量。
所以我们会有这样的事情:
get '/index' => sub {
my $c = shift;
...
my $result = $db->query(...)->hash;
return $c->render(template => 'index', result => $result);
};
...
__DATA__
@@ index.html.ep
<!DOCTYPE html>
<html>
<head><title><%= title %></title></head>
<body><%= dumper $result %></body>
</html>
(这里我使用了dumper
助手,以便散列引用产生有用的输出,而不仅仅是HASH(0x123abc)
。)
进一步阅读: