X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship.pm;h=d4926d187fb6a7cf3d35ae5731765b629bafa34e;hb=48580715af3072905f2c71dc27e7f70f21a11338;hp=67e4f68f84ec6d90c052d10492a4150b54d775a2;hpb=7cf4ae7a66b75a490eec84ce154bf306e1ff8744;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Relationship.pm b/lib/DBIx/Class/Relationship.pm index 67e4f68..d4926d1 100644 --- a/lib/DBIx/Class/Relationship.pm +++ b/lib/DBIx/Class/Relationship.pm @@ -106,12 +106,12 @@ L. All helper methods are called similar to the following template: __PACKAGE__->$method_name('relname', 'Foreign::Class', \%cond | \@cond, \%attrs); - + Both C<$cond> and C<$attrs> are optional. Pass C for C<$cond> if you want to use the default value for it, but still want to set C<\%attrs>. See L for documentation on the -attrubutes that are allowed in the C<\%attrs> argument. +attributes that are allowed in the C<\%attrs> argument. =head2 belongs_to @@ -232,13 +232,13 @@ which can be assigned to relationships as well. =back -Creates a one-to-many relationship, where the corresponding elements -of the foreign class store the calling class's primary key in one (or -more) of the foreign class columns. This relationship defaults to using -the end of this classes namespace as the foreign key in C<$related_class> -to resolve the join, unless C<$their_fk_column> specifies the foreign -key column in C<$related_class> or C specifies a reference to a -join condition hash. +Creates a one-to-many relationship where the foreign class refers to +this class's primary key. This relationship refers to zero or more +records in the foreign table (e.g. a C). This relationship +defaults to using the end of this classes namespace as the foreign key +in C<$related_class> to resolve the join, unless C<$their_fk_column> +specifies the foreign key column in C<$related_class> or C +specifies a reference to a join condition hash. =over @@ -297,7 +297,7 @@ OR condition. 'My::DBIC::Schema::Book', { 'foreign.author_id' => 'self.id' }, ); - + # OR (similar result, assuming related_class is storing our PK, in "author") # (the "author" is guessed at from "Author" in the class namespace) My::DBIC::Schema::Author->has_many( @@ -441,6 +441,17 @@ methods and valid relationship attributes. Also see L for a L which can be assigned to relationships as well. +Note that if you supply a condition on which to join, if the column in the +current table allows nulls (i.e., has the C attribute set to a +true value), than C will warn about this because it's naughty and +you shouldn't do that. + + "might_have/has_one" must not be on columns with is_nullable set to true (MySchema::SomeClass/key) + +If you must be naughty, you can suppress the warning by setting +C environment variable to a true value. Otherwise, +you probably just want to use C. + =head2 has_one =over 4 @@ -528,6 +539,11 @@ methods and valid relationship attributes. Also see L for a L which can be assigned to relationships as well. +Note that if you supply a condition on which to join, if the column in the +current table allows nulls (i.e., has the C attribute set to a +true value), than warnings might apply just as with +L. + =head2 many_to_many =over 4