我正在尝试使用 Catalyst 中的 DBIx::Class 创建一个新行,代码如下:
$c->model('Session')->resultset('UserPreference')->create(
{
appname => 'rss_reader',
username => $username,
data => $data,
},
);
但是,我每次都遇到这个错误:
Caught exception in App::Controller::rss->dbo "Can't call method "resolve" on an undefined value at /etg/source/Linux/pkg/perl-5.8.8/lib/site_perl/5.8.8/DBIx/Class/Row.pm line 1309."
我看到一些邮件列表谈论当查询由于任何原因(perms、约束等)失败时,这个错误被抛出为不正确的一揽子错误,但它看起来很好,甚至在 DBIC_TRACE=1 下运行,我不甚至在我的控制台中查看生成的查询。
我应该提一下,我不认为权限等有什么不好的地方。因为手动使用数据库句柄:
my $stm=$c->model("Session")->storage->dbh->prepare("insert into user_preferences (username,appname,data) values ('mphillip','rss_reader','cookies')"); $stm->execute();