|
NAMEDBIx::Class::IntrospectableM2M - Introspect many-to-many shortcutsSYNOPSISIn your DBIx::Class Result class (sometimes erroneously referred to as the 'table' class):__PACKAGE__->load_components(qw/IntrospectableM2M ... Core/); #Digest encoder with hex format and SHA-1 algorithm __PACKAGE__->many_to_many(roles => user_roles => 'role); When you want to introspect this data my $metadata = $result_class->_m2m_metadata->{roles}; # $metadata->{accessor} method name e.g. 'roles' # $metadata->{relation} maping relation e.g. 'user_roles' # $metadata->{foreign_relation} far-side relation e.g. 'role # $metadata->{attrs} relationship attributes, if any # Convenience methods created by DBIx::Class # $metadata->{rs_method} 'roles_rs' # $metadata->{add_method} 'add_to_roles', # $metadata->{set_method} 'set_roles', # $metadata->{remove_method} 'remove_from_roles' Note: The component needs to be loaded before Core. COMPATIBILITY NOTICEThis module is fairly esoteric and, unless you are dynamically creating something out of a DBIC Schema, is probably the wrong solution for whatever it is you are trying to do. Please be advised that compatibility is not guaranteed for DBIx::Class 0.09000+. We will try to manitain all compatibility, but internal changes might make it impossible.DESCRIPTIONBecause the many-to-many relationships are not real relationships, they can not be introspected with DBIx::Class. Many-to-many relationships are actually just a collection of convenience methods installed to bridge two relationships. This DBIx::Class component can be used to store all relevant information about these non-relationships so they can later be introspected and examined.METHODSmany_to_manyExtended to store all relevant information in the "_m2m_metadata" HASH ref._m2m_metadataAccessor to a HASH ref where the keys are the names of m2m relationships and the value is a HASH ref as described in the SYNOPSIS.AUTHORGuillermo Roditi (groditi) <groditi@cpan.org>COPYRIGHT AND LICENSECopyright (C) 2008 by Guillermo RoditiThis library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. |