Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

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:


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 '', { '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 (Priest) 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?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1060837]
Approved by Old_Gray_Bear
usemodperl enters an empty gate

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2018-06-23 19:00 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (125 votes). Check out past polls.