2011-06-13 27 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將失敗。

相關問題