[Dbix-class] Extending 'find' to include constant value for
search query
Matt S Trout
dbix-class at trout.me.uk
Fri Jun 22 14:26:54 GMT 2007
On Fri, Jun 22, 2007 at 10:04:49AM +1000, Charlie Garrison wrote:
> Good morning,
>
> On 22/6/07 at 8:37 AM +0930, Jon Schutz <jon+dbix at youramigo.com> wrote:
>
> >> So, first my question is, what is the best way to extend
> >>find so that I can restrict records using an additional
> >>(constant) value in the query? And if I should just override
> >>'find', where do I put my 'find' method?
> >
> >find is a ResultSet method; you need to create a ResultSet class that
> >inherits from DBIx::Class::ResultSet, put your find in there (and
> >probably search_rs too), and direct your schema to use that class by
> >adding
> >__PACKAGE__->resultset_class(...)
> >
> >into your schema (table declaration) class.
>
> I found a similar explanation in the cookbook, but didn't think
> that applied in this case (not sure why). Now that you've
> clarified it, it makes perfect sense. I'll give that a go now.
Yeah, but it's still not what you want - you don't want to be overloading
find(), you want to be making sure the resultset you end up with has already
had the ->search applied to it, like I said in my previous e-mail.
Assuming you're doing this for user permission restrictions, you might
want a look at DBIx::Class::Schema::RestrictWithObject ...
--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director Want a managed development or deployment platform?
Shadowcat Systems Ltd. Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/ http://www.shadowcatsystems.co.uk/
More information about the Dbix-class
mailing list