holding the foreign key. If $cond is not given, the relname is used as
the column name.
+If the relationship is optional - ie the column containing the foreign
+key can be NULL - then the belongs_to relationship does the right
+thing - so in the example above C<$obj->author> would return C<undef>.
+However in this case you would probably want to set the C<join_type>
+attribute so that a C<LEFT JOIN> is done, which makes complex
+resultsets involving C<join> or C<prefetch> operations work correctly.
+The modified declaration is shown below:-
+
+ # in a Book class (where Author has many Books)
+ __PACKAGE__->belongs_to(author => 'My::DBIC::Schema::Author',
+ 'author', {join_type => 'left'});
+
+
Cascading deletes are off per default on a C<belongs_to> relationship, to turn
them on, pass C<< cascade_delete => 1 >> in the $attr hashref.
table, and from the link table to the end table must already exist, these
relation names are then used in the many_to_many call.
-=head3 Created accessors
-
-=head4 $rel
-
-=over 4
-
-=item Arguments: $vals?, $attrs
-
-=back
-
- my $role_rs = $actor->roles;
-
- my $role1 = $actor->roles({ name => 'role1' })->first;
-
-Returns a resultset for the foreign table on the right side of the
-many-to-many relationship. (e.g., in the above example, a CD's
-producers). Takes the same arguments as L<DBIx::Class::ResultSet/"search">.
-
-=head4 add_to_$rel
-
-=over 4
-
-=item Arguments: ($foreign_vals | $obj), $link_vals?
-
-=back
-
- my $role = $schema->resultset('Role')->find(1);
- $actor->add_to_roles($role);
- # creates a My::DBIC::Schema::ActorRoles linking table row object
-
- $actor->add_to_roles({ name => 'lead' }, { salary => 15_000_000 });
- # creates a new My::DBIC::Schema::Role row object and the linking table
- # object with an extra column in the link
-
-Adds a linking table object for C<$obj> or C<$foreign_vals>. If the first
-argument is a hash reference, the related object is created first with the
-column values in the hash. If an object reference is given, just the linking
-table object is created. In either case, any additional column values for the
-linking table object can be specified in C<$link_vals>.
-
-=head4 remove_from_$rel
-
-=over 4
-
-=item Arguments: $obj
-
-=back
-
- my $role = $schema->resultset('Role')->find(1);
- $actor->remove_from_roles($role);
- # removes $role's My::DBIC::Schema::ActorRoles linking table row object
-
-Removes the link between the current object and the related object. Note that
-the related object itself won't be deleted unless you call ->delete() on
-it. This method just removes the link between the two objects.
-
=cut
1;