Hi!

I've a test DB with two items:

gene_id= 1, gene_name= lanosterol demethylase
gene_id = 2, gene_name= lanosterol demethylase

(there are other columns where the two genes differ)

mysql> select gene_name FROM genes;
+------------------------+
| gene_name              |
+------------------------+
| lanosterol demethylase | 
| lanosterol demethylase | 
+------------------------+
2 rows in set (0.00 sec)

mysql> select gene_id FROM genes WHERE gene_name='lanosterol demethylase';
+---------+
| gene_id |
+---------+
|       1 | 
|       2 | 
+---------+
2 rows in set (0.00 sec)


Now, in my catalyst controller I have this:

my $model = $context->model('DB::Genes');
if ($context->request->param('gene_name')) {
  my $name = $context->req->param('gene_name');
  my $geners = $model->search({ gene_name => $name } );
  $context->stash->{geners} = $geners;
  $context->stash->{template} = "genes.tt";
}

and in my genes template:

[% FOREACH obj IN geners.next() %]
[% obj.gene_id %]
[% obj.gene_name %]
[% obj.gene_length %]
et cetera 
[% END %]


However I only get the gene with id=1 listed in the web
page (the same is true if I iterate over the resultset in
the controller and print log info using $context->log->info)

A 'search_literal' didn't work either (only gets gene_id 1)
my $gene_rs = $model->search_literal('gene_name = ?', "$name");

Wasn't 'search' supposed to be different from 'find'?
What am I doing wrong?

Fernan

DBIx-Class-0.06003
DBIx-Class-Loader-0.21
DBIx-Class-Schema-Loader-0.02007
DBI-1.50
DBD-mysql50-3.0003
Catalyst-5.6902
Catalyst-Model-DBIC-0.14


_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/

Reply via email to