[Dbix-class] Creating rows

Zbigniew Lukasiak zzbbyy at gmail.com
Sat Jan 5 16:23:02 GMT 2008


Happy New Year!

I've recently learned that in DBIC you can do something like:

 $user_rs->create( { name => 'new nick', addresses => [
            { address => 'new address' },
            { address => 'new address 2' },
            ]
      }
 );

and have the related rows created.

When refactoring the FormFu::Model::DBIC code I've reached a point
where it would be useful to do:
$user->update_with_relations( { name => 'new nick', addresses => [
            { id => 2, address => 'new home' },
            { id => 3, address => 'new office'},
            { id => undef, address => 'new address'},
            ]
        }
    );
and have the (already existing) related rows updated.  Unfortunately
when I do that DBIC tries to insert them and fails because their ids
are already taken (the last one, with id => undef, works as expected -
a new row is inserted).

Has anyone tried to implement this?

Cheers,
Zbigniew
http://perlalchemy.blogspot.com



More information about the DBIx-Class mailing list