Perl 类虚拟列?
我正在使用基于DBIx::Class(Loader)的ORM构建一个应用程序。我的大多数数据库模型都有一个“name”列。我的一个控制器主要使用“name”列搜索所有架构类。但是,有几个模式类没有“name”列 是否可以在DBIx::Class中添加一种使用另一列的“虚拟”列:Perl 类虚拟列?,perl,catalyst,dbix-class,Perl,Catalyst,Dbix Class,我正在使用基于DBIx::Class(Loader)的ORM构建一个应用程序。我的大多数数据库模型都有一个“name”列。我的一个控制器主要使用“name”列搜索所有架构类。但是,有几个模式类没有“name”列 是否可以在DBIx::Class中添加一种使用另一列的“虚拟”列: $resultset('Account')->search({name => 'foobar'}) 秘密改写 $resultset('Account')->search({accountnumber
$resultset('Account')->search({name => 'foobar'})
秘密改写
$resultset('Account')->search({accountnumber => 'foobar'})
我希望我说的有道理,有人吗
Thx,
Rob据我所知,这是不可能的-无论如何,作为搜索查询中的一个键是不可能的。您可以做的是为所有resultset类(您正在使用的,对吗?)创建一个基类,它有一个方法
find\u by\u name
或类似方法,可以在正确的列上执行此搜索。该列可以默认为名称,但会被class属性覆盖,您可以使用该属性进行设置
您可以使用的default\u resultset\u class
属性将此基类设置为所有结果集的默认结果集类