Re: [Catalyst] Updating a database entry
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 vend...@gmail.com wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 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. -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk2XbNAACgkQsK1mqepTLy9JNACeIsj8CR0d6utPMLRpgZQEs2+X N8UAnicZ07JpEK6kCxtwHdYGd+hW6VQt =NuEZ -END PGP SIGNATURE- ___ List: Catalyst@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@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/
Re: [Catalyst] Updating a database entry
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 vend...@gmail.com mailto:vend...@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@lists.scsys.co.uk mailto:Catalyst@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@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/ signature.asc Description: OpenPGP digital signature ___ List: Catalyst@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/
Re: [Catalyst] Updating a database entry
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 vend...@gmail.com mailto:vend...@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@lists.scsys.co.uk mailto:Catalyst@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@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@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: fobi...@isc.org Phone: +1 650 423 1374 || INOC-DBA *3557* NOC Key fingerprint = 532F 84EB 06B4 3806 D5FA 09C6 463E 614E B38D B1BE ___ List: Catalyst@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/