Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Dancer Arrayref to Template

by packetstormer (Monk)
on Nov 01, 2013 at 20:34 UTC ( #1060837=perlquestion: print w/replies, xml ) Need Help??
packetstormer has asked for the wisdom of the Perl Monks concerning the following question:

Hello

I have a strange problem where an arrayref I send to Template, using Dancer, isn't being displayed correctly. I can't see the woods for the trees now so I hope someone can spot what I am doing wrong! The test arrayref rolls out fine, but the files arrayref just prints the hashrefs to screen!??

use Dancer; use DBI; use Template; use Data::Dumper; set 'database' => 'files.db'; set 'log' => 'debug'; set 'logger' => 'console'; get '/' => sub { my $db = connect_db(); my $sql = 'select * from table'; my $sth = $db->prepare($sql) or die $db->errstr; $sth->execute or die $sth->errstr; my $files = $sth->fetchall_arrayref({}); template 'show_entries.tt', { 'files' => $files, 'test' => [1,2,3,4,5] }; }; sub connect_db { my $dbh = DBI->connect("dbi:SQLite:dbname=".setting('database') ) or + die; return $dbh; }
And the template file:
<% FOREACH line IN files %> <% line.title %><br /> <% END %> <br /> <% FOREACH also IN test %> <% also %> <% END %>

Replies are listed 'Best First'.
Re: Dancer Arrayref to Template
by dasgar (Curate) on Nov 01, 2013 at 21:12 UTC

    By default, Dancer uses a simple templating system that has syntax that is very similar to Template::Toolkit. However, you can only pass scalars and you don't have other control stuff (like if statements, loops, etc.). If you try to pass an array or hash to the template with the default templating system choice, the variable in the template will only have the array reference or hash reference.

    In order to use Template::Toolkit, you need to have template: template_toolkit in your config.yml file or set template => 'template_toolkit'; in your code itself. Look at the Dancer::Config, Dancer::Template and Dancer::Template::Simple documentation for more details.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1060837]
Approved by Old_Gray_Bear
help
Chatterbox?
[MidLifeXis]: More opportunities for anonymous snafus :-)
[MidLifeXis]: In a small group / company, at least you know who needs to buy the next round of beer for their mess-up.
[MidLifeXis]: :-)
[Discipulus]: are sure you are not really named "%Firstname% %Lastname%..." ? have you check your identity card?
[Discipulus]: Bobby Tables?

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2017-01-19 12:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (170 votes). Check out past polls.