On Sat, 5 Jan 2008, Zbigniew Lukasiak wrote:
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' },
]
}
);
Funky ain't it, I did that ;)
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).
Not yet, but it's a logical follow on, may be somewhat more interesting to
do though.. OTOH nothingmuch has just helped by factoring out a part of
the code.
new() currently does a find_or_new on all the related bits, then insert()
inserts them if needed.
update() should likely do similar, plus inserting if new relateds are
added. I'm surprised the undef got inserted..
Jess
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]