[Bast-commits] r4858 - in
DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk:
lib/DBIx/Class/ResultSet t/var
zby at dev.catalyst.perl.org
zby at dev.catalyst.perl.org
Tue Sep 30 10:29:02 BST 2008
Author: zby
Date: 2008-09-30 10:29:02 +0100 (Tue, 30 Sep 2008)
New Revision: 4858
Modified:
DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm
DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk/t/var/dvdzbr.db
Log:
Updated to curren DBIC.
Modified: DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm
===================================================================
--- DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm 2008-09-29 17:36:43 UTC (rev 4857)
+++ DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm 2008-09-30 09:29:02 UTC (rev 4858)
@@ -12,7 +12,8 @@
my( $self, $updates ) = @_;
my $object;
# this is a workaround for a bug in the svn version 4794
- if ( ref $self->{cond} eq 'ARRAY' and ref $self->{cond}[0] eq 'SCALAR' ){
+# if ( ref $self->{cond} eq 'ARRAY' and ref $self->{cond}[0] eq 'SCALAR' ){
+ if ( ref $self->{cond} eq 'SCALAR' ){
$self->{cond} = {};
$object = $self->new( {} );
}
@@ -20,8 +21,10 @@
$object = $self->find( $updates, { key => 'primary' } ) || $self->new( {} );
}
- for my $name ( keys %$updates ){ if($object->can($name)){
+ for my $name ( keys %$updates ){
+ if($object->can($name)){
my $value = $updates->{$name};
+
# updating relations that that should be done before the row is inserted into the database
# like belongs_to
if( $object->result_source->has_relationship($name)
@@ -34,7 +37,6 @@
_master_relation_cond( $object, $info->{cond}, _get_pk_for_related( $object, $name ) )
){
my $related_result = $object->related_resultset( $name );
- $DB::single = 1;
my $sub_object = $related_result->recursive_update( $value );
$object->set_from_related( $name, $sub_object );
}
@@ -197,12 +199,22 @@
put 'undef' for the key value - this is then removed
and a correct INSERT statement is generated.
+ For a many_to_many (pseudo) relation you can supply a list of primary keys
+ from the other table - and it will link the record at hand to those and
+ only those records identified by them. This is convenient for handling web
+ forms with check boxes (or a SELECT box with multiple choice) that let you
+ update such (pseudo) relations.
+
For a description how to set up base classes for ResultSets see load_namespaces
in DBIx::Class::Schema.
+ The support for many to many pseudo relationships should be treated as prototype -
+ the DBIC author disagrees with the way I did it.
+
+
=head1 INTERFACE
-=for author to fill in:
+=for uthor to fill in:
=head1 METHODS
Modified: DBIx-Class-ResultSet-RecursiveUpdate/1.000/trunk/t/var/dvdzbr.db
===================================================================
(Binary files differ)
More information about the Bast-commits
mailing list