[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