Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dbix::class::helpers(3pm) [debian man page]

DBIx::Class::Helpers(3pm)				User Contributed Perl Documentation				 DBIx::Class::Helpers(3pm)

NAME
DBIx::Class::Helpers - Simplify the common case stuff for DBIx::Class. VERSION
version 2.013002 SYNOPSIS
package MyApp::Schema::Result::Foo_Bar; __PACKAGE__->load_components(qw{Helper::JoinTable Core}); __PACKAGE__->join_table({ left_class => 'Foo', left_method => 'foo', right_class => 'Bar', right_method => 'bar', }); # define parent class package ParentSchema::Result::Bar; use strict; use warnings; use parent 'DBIx::Class'; __PACKAGE__->load_components('Core'); __PACKAGE__->table('Bar'); __PACKAGE__->add_columns(qw/ id foo_id /); __PACKAGE__->set_primary_key('id'); __PACKAGE__->belongs_to( foo => 'ParentSchema::Result::Foo', 'foo_id' ); # define subclass package MySchema::Result::Bar; use strict; use warnings; use parent 'ParentSchema::Result::Bar'; __PACKAGE__->load_components(qw{Helper::SubClass Core}); __PACKAGE__->subclass; SEE ALSO
DBIx::Class::Helper::Row::JoinTable, DBIx::Class::Helper::ResultSet::SubClass, DBIx::Class::Helpers::Util AUTHOR
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Arthur Axel "fREW" Schmidt. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-18 DBIx::Class::Helpers(3pm)

Check Out this Related Man Page

DBIx::Class::Helper::Row::JoinTable(3pm)		User Contributed Perl Documentation		  DBIx::Class::Helper::Row::JoinTable(3pm)

NAME
DBIx::Class::Helper::Row::JoinTable - Easily set up join tables with DBIx::Class VERSION
version 2.013002 SYNOPSIS
package MyApp::Schema::Result::Foo_Bar; __PACKAGE__->load_components(qw{Helper::Row::JoinTable Core}); __PACKAGE__->join_table({ left_class => 'Foo', left_method => 'foo', right_class => 'Bar', right_method => 'bar', }); # the above is the same as: __PACKAGE__->table('Foo_Bar'); __PACKAGE__->add_columns( foo_id => { data_type => 'integer', is_nullable => 0, is_numeric => 1, }, bar_id => { data_type => 'integer', is_nullable => 0, is_numeric => 1, }, ); $self->set_primary_key(qw{foo_id bar_id}); __PACKAGE__->belongs_to( foo => 'MyApp::Schema::Result::Foo' 'foo_id'); __PACKAGE__->belongs_to( bar => 'MyApp::Schema::Result::Bar' 'bar_id'); or with DBIx::Class::Candy: package MyApp::Schema::Result::Foo_Bar; use DBIx::Class::Candy -components => ['Helper::Row::JoinTable']; join_table { left_class => 'Foo', left_method => 'foo', right_class => 'Bar', right_method => 'bar', }; METHODS
All the methods take a configuration hashref that looks like the following: { left_class => 'Foo', left_method => 'foo', # see NOTE left_method_plural => 'foos', # see NOTE, not required, used for # many_to_many rel name in right_class # which is not generated by default right_class => 'Bar', right_method => 'bar', # see NOTE right_method_plural => 'bars', # see NOTE, not required, used for # many_to_many rel name in left_class # which is not generated by default namespace => 'MyApp', # default is guessed via *::Foo self_method => 'foobars', # not required, used for setting the name of the # join table's relationship in a has_many # which is not generated by default } join_table This is the method that you probably want. It will set your table, add columns, set the primary key, and set up the relationships. add_join_columns Adds two non-nullable integer fields named "${left_method}_id" and "${right_method}_id" respectively. generate_has_manys Installs methods into "left_class" and "right_class" to get to the join table. The methods will be named what's passed into the configuration hashref as "self_method". generate_many_to_manys Installs many_to_many methods into "left_class" and "right_class". The methods will be named what's passed into the configuration hashref as "left_method_plural" for the "right_class" and "right_method_plural" for the "left_class". generate_primary_key Sets "${left_method}_id" and "${right_method}_id" to be the primary key. generate_relationships This adds relationships to "${namespace}::Schema::Result::$left_class" and "${namespace}::Schema::Result::$left_class" respectively. set_table This method sets the table to "${left_class}_${right_class}". CANDY EXPORTS
If used in conjunction with DBIx::Class::Candy this component will export: join_table generate_primary_key generate_has_manys generate_many_to_manys generate_relationships set_table add_join_columns NOTE This module uses String::CamelCase to default the method names and uses Lingua::EN::Inflect for pluralization. CHANGES BETWEEN RELEASES
Changes since 0.* Originally this module would use data_type => 'integer', is_nullable => 0, is_numeric => 1, for all joining columns. It now infers "data_type", "is_nullable", "is_numeric", and "extra" from the foreign tables. AUTHOR
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Arthur Axel "fREW" Schmidt. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-18 DBIx::Class::Helper::Row::JoinTable(3pm)
Man Page