From: Jess Robinson Date: Wed, 17 May 2006 09:28:27 +0000 (+0000) Subject: Documentation updates X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=e8e9e5c72e0418931874b5de49396c3d2ab95cf0;p=dbsrgits%2FDBIx-Class-Historic.git Documentation updates --- diff --git a/lib/DBIx/Class/Manual/Cookbook.pod b/lib/DBIx/Class/Manual/Cookbook.pod index e82426e..809ea74 100644 --- a/lib/DBIx/Class/Manual/Cookbook.pod +++ b/lib/DBIx/Class/Manual/Cookbook.pod @@ -786,4 +786,15 @@ It is possible to get a Schema object from a row object like so, This can be useful when you don't want to pass around a Schema object to every method. +=head2 Getting the value of the primary key for the last database insert + +If you are using PK::Auto, this is straightforward: + + my $foo = $rs->create({blah}); + # do more stuff + my $id = $foo->id; # foo->my_primary_key_field will also work. + +If you are not using autoincrementing primary keys, this will probably +not work, but then you already know the value of the last primary key anyway. + =cut diff --git a/lib/DBIx/Class/Relationship.pm b/lib/DBIx/Class/Relationship.pm index 44ed65b..6048fd0 100644 --- a/lib/DBIx/Class/Relationship.pm +++ b/lib/DBIx/Class/Relationship.pm @@ -118,6 +118,9 @@ 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. +Cascading deletes are off per default on a C relationship, to turn +them on, pass C<< cascade_delete => 1 >> in the $attr hashref. + NOTE: If you are used to L relationships, this is the equivalent of C. @@ -144,8 +147,9 @@ will also be added to your Row items, this allows you to insert new related items, using the same mechanism as in L. If you delete an object in a class with a C relationship, all -related objects will be deleted as well. However, any database-level -cascade or restrict will take precedence. +the related objects will be deleted as well. However, any database-level +cascade or restrict will take precedence. To turn this behavior off, pass +C<< cascade_delete => 0 >> in the $attr hashref. =head2 might_have @@ -160,6 +164,7 @@ key of the foreign class unless $cond specifies a column or join condition. If you update or delete an object in a class with a C relationship, the related object will be updated or deleted as well. Any database-level update or delete constraints will override this behaviour. +To turn off this behavior, add C<< cascade_delete => 0 >> to the $attr hashref. =head2 has_one diff --git a/lib/DBIx/Class/ResultSet.pm b/lib/DBIx/Class/ResultSet.pm index 2651034..0b3a010 100644 --- a/lib/DBIx/Class/ResultSet.pm +++ b/lib/DBIx/Class/ResultSet.pm @@ -1395,6 +1395,10 @@ use C instead: You can create your own accessors if required - see L for details. +Please note: This will NOT insert an C into the SQL statement +produced, it is used for internal access only. Thus attempting to use the accessor +in an C clause or similar will fail misrably. + =head2 join =over 4