--- On Tue, 9/23/08, Zbigniew Lukasiak <[EMAIL PROTECTED]> wrote: > From: Zbigniew Lukasiak <[EMAIL PROTECTED]> > Subject: Re: [Catalyst] Search example in any docs? > To: [EMAIL PROTECTED], "The elegant MVC web framework" > <catalyst@lists.scsys.co.uk> > Date: Tuesday, September 23, 2008, 1:02 PM > On Tue, Sep 23, 2008 at 9:38 PM, Dr. Jennifer Nussbaum > <[EMAIL PROTECTED]> wrote: > > Hi. > > > > Im working on a new app which is working well. While > doing it though i realised that i never get my serach done > right. I mean, it works, but > > i end up spending a lot of code munging parameters, > making adjustments, > > and so forth, and this cant be right. What should be a > few lines takes a page or two of code, just for a simple one > or two table search. > > > > I tried looking through the docs for a best-practices > approach and unless i missed something there arent ANY > examples of search in the docs, the tutorial, the wiki, the > Advent.... (Oh in one place there was something about harder > searches, fulltext in PostGres, but nothing general.) > > > > Is there any place that shows a simple example of a > web form -> DBIC search in Catalyst? And if not, shouldnt > there be? > > Hi there, > > I am sure you are referring to > http://www.catalystframework.org/calendar/2007/16 :) I > don't really > know what you need, but I start that article with a very a > simple > solution: > > my @records = $schema->ResultSet( 'MyTable' > )->search( > $reqest->params, > { page => 1, rows => 5 } > ); > > Only after presenting that I start discussing what to do > when you need > to add some more complex predicates to the query and > propose a > solution to that.
Yes i did see that and i did try it, but i quickly found that i ran into all sorts of problems. For example my params would usually include something like a "action" param with the value "Submit query", whihc doesnt work so well when it hits the database ;-) Thanks to Peter Karman for his other suggestion, which i will look at in more detail. I guess i do stuff like that by hand all the time--i have code that looks like if ( $c->req->params->{title} ) { my $title = "%" . $c->req->params->{title} . "%"; push (@$query, { title => { like => $title } }); } # exact match here if ( $c->req->params->{author} ) { my $performer = $c->req->params->{author}; push (@$query, { author => { '=' => $author} }); } etc., which just looks messy. In any case i do think this should be at least MENTIONED in some of the docs. The fact that it gets complicated doesnt mean it should be ignored, surely everyone has to do this in Cat. Thanks! Jen _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/