From: Nigel Metheringham Date: Wed, 5 Jul 2006 09:59:28 +0000 (+0000) Subject: Added note to belongs_to documentation X-Git-Tag: v0.07002~75^2~58 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2c3ad870fd6a88f5824d4b2c5a63f87c2af1c005;p=dbsrgits%2FDBIx-Class.git Added note to belongs_to documentation --- diff --git a/lib/DBIx/Class/Relationship.pm b/lib/DBIx/Class/Relationship.pm index 54fda91..3a23108 100644 --- a/lib/DBIx/Class/Relationship.pm +++ b/lib/DBIx/Class/Relationship.pm @@ -118,6 +118,19 @@ instead of a join condition hash, that is used as the name of the column 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. +However in this case you would probably want to set the C +attribute so that a C is done, which makes complex +resultsets involving C or C 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 relationship, to turn them on, pass C<< cascade_delete => 1 >> in the $attr hashref.