[Dbix-class] Creating rows
Zbigniew Lukasiak
zzbbyy at gmail.com
Tue Jan 8 10:20:27 GMT 2008
On Jan 5, 2008 7:05 PM, Jess Robinson <castaway at desert-island.me.uk> wrote:
>
>
> 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.
Great!
By the way I think it would also be nice to use that syntax for
search. I'll update my advanced search article
http://catalyst.perl.org/calendar/2007/16.
Z.
>
> 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/dbix-class@lists.rawmode.org
>
--
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
More information about the DBIx-Class
mailing list