[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