[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