[Catalyst] Updating a database entry
Francisco Obispo
fobispo at isc.org
Sun Apr 3 19:59:49 GMT 2011
Remember that Catalyst uses DBIx::Class as an ORM, so it must be able to uniquely identified each row with a Primary Key.
If you're going to update the primary key (which is not usually a good idea), make sure that you have 'ON UPDATE CASCADE' on referencing child tables, otherwise the operation will fail.
Francisco
On Apr 3, 2011, at 12:25 PM, Adam Jimerson wrote:
> I managed to find my error that was causing my problem:
>
> DBIx::Class::DynamicDefault::update(): Operation requires a primary key
> to be declared on 'TickIt::Schema::Result::Tech' via set_primary_key at
> /home/vendion/Projects/TickIt/script/../lib/TickIt/Controller/Admin.pm
> line 114
>
> Does it make a difference that none of the fields that I am updating is
> my primary_key on my database? Or is it complaining about the lack of a
> primary key all together?
>
> Rohan M wrote:
>> Hi Adam,
>>
>> Did you try putting result-set in the variable rather than directly
>> putting it into stash?
>>
>> my $user = $c->model('DB::Tech')->find({id => $userid});
>> $user->update({ id => $username,
>> firstname => $fname,
>> lastname => $lname,
>> email => $email,
>> phone => $phone,});
>>
>> Try this and let us know
>>
>> On Sun, Apr 3, 2011 at 12:07 AM, Adam Jimerson <vendion at gmail.com
>> <mailto:vendion at gmail.com>> wrote:
>>
>> First of all hello people of the list!
>>
>> I am working on my first Catalyst app and need some help updating an
>> entry from my database.
>>
>> $c->stash( users_rs => $c->model('DB::Tech'));
>> my $user = $c->stash->{users_rs}->find({ id => $userid });
>> die "No such user: $userid\n" if (!$user);
>> $c->stash(user => $user);
>> $c->log->debug('Before update');
>> $user->update({
>> id => $username,
>> firstname => $fname,
>> lastname => $lname,
>> email => $email,
>> phone => $phone,
>> });
>> $c->log->debug('After update');
>>
>> In the debug output from Catalyst I can see where the "Before update"
>> gets printed but fails with no error that I can see during the update.
>> Any help or advice in this matter would be greatly appreciated.
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk <mailto:Catalyst at lists.scsys.co.uk>
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
>
>
>
>> --
>> रोहन मल्लेल्रवार
>
>
>
>
>> _______________________________________________
>> List: Catalyst at lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
Francisco Obispo
Hosted@ Programme Manager
email: fobispo at isc.org
Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
Key fingerprint = 532F 84EB 06B4 3806 D5FA 09C6 463E 614E B38D B1BE
More information about the Catalyst
mailing list