[Dbix-class] pod patch for predefined searches using a custom resultset

Jess Robinson castaway at desert-island.demon.co.uk
Mon Mar 20 19:17:50 CET 2006


Applied, thanks.

Jess


On Mon, 20 Mar 2006, Hartmaier Alexander wrote:

> *snip*
> Index: lib/DBIx/Class/Manual/Cookbook.pod
> ===================================================================
> --- lib/DBIx/Class/Manual/Cookbook.pod  (revision 1261)
> +++ lib/DBIx/Class/Manual/Cookbook.pod  (working copy)
> @@ -169,6 +169,37 @@
>   # LEFT JOIN cd cds ON ( cds.artist = me.artistid )
>   # GROUP BY name
>
> +=head3 Predefined searches
> +
> +You can write your own DBIx::Class::ResultSet class by inheriting from it and
> +define often used searches as methods:
> +
> +  package My::DBIC::ResultSet::CD;
> +  use strict;
> +  use warnings;
> +  use base 'DBIx::Class::ResultSet';
> +
> +  sub search_cds_ordered {
> +      my ($self) = @_;
> +
> +      return $self->search(
> +          {},
> +          { order_by => 'name DESC' },
> +      );
> +  }
> +
> +  1;
> +
> +If you want to use the resultset class by default for one of your table classes
> +you can do this by defining it in your table class like this:
> +
> +  __PACKAGE__->resultset_class('My::DBIC::ResultSet::CD');
> +
> +
> +To just use the resultset somewhere in your code you have to call:
> +
> +   $schema->source('CD')->resultset_class('My::DBIC::ResultSet::CD');
> +
> =head2 Using joins and prefetch
>
> You can use the C<join> attribute to allow searching on, or sorting your
> *snip*
>
>
> -Alex
>
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
> T-Systems Austria GesmbH
> Rennweg 97-99, 1030 Wien
> Telefon +43 (0)57057 0, Telefax +43 (0)57057 8155
> Bank Austria AG, BLZ 12000, Kto. 233-111-674/00, IBAN AT291200023311167400
> Handelsgericht Wien, FN 79340b ? DVR Nr. 0713520 ? ARA-Lizenz Nr. 12554
> ATU 15169001
>
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
> Hinweis: Dieses E-mail kann vertrauliche und gesch?tzte Informationen enthalten.
> Sollten Sie nicht der beabsichtigte Empf?nger sein, verst?ndigen Sie bitte den Absender und l?schen Sie dieses E-mail dann sofort.
>
> Notice: This e-mail contains information that is confidential and may be privileged.
> If you are not the intended recipient, please notify the sender and then delete this e-mail immediately.
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
>



More information about the Dbix-class mailing list