2011-03-04 81 views
2

我正在構建一個基於ORI的DBIx :: Class(Loader)應用程序。我的大多數數據庫模型都有一個「名稱」列。我的一個控制器主要使用'name'列搜索所有模式類。然而,一些架構類沒有「名稱」列。DBIx :: Class虛擬列?

是在DBIx ::類還可以增加一種「虛擬」列的使用,而不是另一列:

$resultset('Account')->search({name => 'foobar'}) 

偷偷改寫到

$resultset('Account')->search({accountnumber => 'foobar'}) 

我希望我做的意義, 任何人?

THX, 羅布

回答

1

據我知道這是不可能的 - 而不是在搜索查詢的關鍵進不去。你可以做的是爲所有的結果集類創建一個基類(你使用的是load_namespaces,對吧?),它有一個方法find_by_name或類似的方法,它在正確的列上執行這個搜索。該列可以默認爲名稱,但可以通過class屬性覆蓋 - 可以使用mk_accessor進行設置。

您可以設置這個基類是所有的結果集與load_namespaces

+0

優秀的default_resultset_class屬性的默認結果集類,像這樣的建議,我可以工作。謝謝 – 2011-03-08 21:48:43