2011-06-13 64 views
2

我试图创建一个使用DBIx ::类从内部催化剂新行,用下面的代码:DBIx ::类不定值异常,当尝试使用 - >创建()

$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." 

我看到几个邮件列表谈论这个错误时查询无论出于何种原因未能被抛出一个不正确的毯子错误,但它看起来很好,甚至在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(); 
+0

将此报告为DBIx :: Class中的错误,至少错误消息应该更友好 – 2011-06-14 13:12:56

回答

1

你试过update_or_create而不是create?如果存在行create将失败。