DBIx::Class::Schema::Loader::RelBuilder(3pm) | User Contributed Perl Documentation | DBIx::Class::Schema::Loader::RelBuilder(3pm) |
DBIx::Class::Schema::Loader::RelBuilder - Builds relationships for DBIx::Class::Schema::Loader
See DBIx::Class::Schema::Loader and DBIx::Class::Schema::Loader::Base.
This class builds relationships for DBIx::Class::Schema::Loader. This is module is not (yet) for external use.
Arguments: $loader object
Arguments:
[ [ local_moniker1 (scalar), fk_info1 (arrayref), uniq_info1 (arrayref) ] [ local_moniker2 (scalar), fk_info2 (arrayref), uniq_info2 (arrayref) ] ... ]
This generates the code for the relationships of each table.
"local_moniker" is the moniker name of the table which had the REFERENCES statements. The fk_info arrayref's contents should take the form:
[ { local_table => 'some_table', local_moniker => 'SomeTable', local_columns => [ 'col2', 'col3' ], remote_table => 'another_table_moniker', remote_moniker => 'AnotherTableMoniker', remote_columns => [ 'col5', 'col7' ], }, { local_table => 'some_other_table', local_moniker => 'SomeOtherTable', local_columns => [ 'col1', 'col4' ], remote_table => 'yet_another_table_moniker', remote_moniker => 'YetAnotherTableMoniker', remote_columns => [ 'col1', 'col2' ], }, # ... ],
The uniq_info arrayref's contents should take the form:
[ [ uniq_constraint_name => [ 'col1', 'col2' ], ], [ another_uniq_constraint_name => [ 'col1', 'col2' ], ], ],
This method will return the generated relationships as a hashref keyed on the class names. The values are arrayrefs of hashes containing method name and arguments, like so:
{ 'Some::Source::Class' => [ { method => 'belongs_to', arguments => [ 'col1', 'Another::Source::Class' ] }, { method => 'has_many', arguments => [ 'anothers', 'Yet::Another::Source::Class', 'col15' ] }, ], 'Another::Source::Class' => [ # ... ], # ... }
See "AUTHORS" in DBIx::Class::Schema::Loader.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2018-04-19 | perl v5.26.2 |