我正在构建一个基于DBIx::Class (Loader) ORM的应用程序。我的大多数数据库模型都有一个'name‘列。我的一个控制器主要使用'name‘列搜索所有模式类。然而,有几个模式类没有“name”列。
是否可以在DBIx::Class中添加一种使用另一列的“virtual”列:
$resultset('Account')->search({name => 'foobar'})
秘密重写到
$resultset('Account')->search({accountnumber => 'foobar'})
我希望我说得有道理,有人吗?
Thx,Rob
发布于 2011-03-07 21:41:53
据我所知,这是不可能的--无论如何都不能作为搜索查询的关键字。您可以为所有结果集类创建一个基类(您使用的是load_namespaces,对吗?)它具有find_by_name
或类似的方法,在正确的列上执行此搜索。该列可以缺省为类名,但会被属性覆盖-您可以使用mk_accessor设置该属性。
可以使用load_namespaces的default_resultset_class
属性将此基类设置为所有结果集的缺省结果集类
https://stackoverflow.com/questions/5200004
复制相似问题