[Dbix-class] Getting primary key (id) after populate

Hetényi Csaba csabiwork at tata.hu
Thu Sep 10 18:21:05 GMT 2015


Dear Daniel & Dave

Thank You all, now i understand, and tried "$hrsz_res->[-1]->id" and 
works as i expected!
:)
It is a very valuable mail-list, thanks to You!

Csaba Hetenyi

2015.09.10. 20:16 keltezéssel, Dave Cross írta:
> On 10/09/15 19:04, Hetényi Csaba wrote:
>> Dear friends
>>
>> Sorry for newbie question!
>> I'd like to know, how to get the last inserted row's primary key after a
>> populate?
>> I have the following code in a Catalyst app (it inserts data to related
>> tables too, but in the main table: FoldkHrsz only one row):
>>
>> # DB Populate
>> my $hrsz_res = $c->model('DB::FoldkHrsz')->populate([
>>          {
>>          %$hrsz_data,
>>          foldk_alreszlets => \@$alreszlet_AoH,
>>       foldk_szeljegyzetts => \@$szeljegyzett_adat_AoH,
>>       foldk_szolgalmis => \@$szolgalmi_adat_AoH,
>>       foldk_tulajs => \@$tulaj_adat_AoH,
>>       foldk_jogok_tenyeks => \@$jogok_tenyek_adat_AoH
>>         },
>>      ]);
>>
>> After this, if i try to get the last inserted row's PK with this:
>>
>> $hrsz_res->id;
>>
>> ..gives an error:
>> "Can't call method "id" on unblessed reference at ..."
>>
>> I know, that the populate method's result is:
>> \@result_objects (scalar context) | @result_objects (list context)
>> but don't know, how to use them?
>
> You're calling populate() in scalar context, so you're getting an 
> array reference back. You want the first element in the referenced array.
>
>   $hrsz->[0]->id;
>
> But a better solution might be to call populate() in list context.
>
>   my ($hrsz_res) = $c->model('DB::FoldkHrsz')->populate([ ... ]);
>
> Then $hrsz_res will contain a row object which you can use in the way 
> you were originally expecting.
>
>   $hrsz->id;
>
> hth,
>
> Dave...
>
>
> _______________________________________________
> 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.scsys.co.uk




More information about the DBIx-Class mailing list