X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship.pm;h=3a2310852523a11e6269a9a818e7f8c88e985f7e;hb=f11383c2fd0da2579098d1125b51f08eb98beb3e;hp=54fda9153728584e2e1a972d8acbb52accb433e5;hpb=ec353f5306d763103f7af5e1e2f940abcd56f222;p=dbsrgits%2FDBIx-Class-Historic.git 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.