Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 类虚拟列?_Perl_Catalyst_Dbix Class - Fatal编程技术网

Perl 类虚拟列?

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

我正在使用基于DBIx::Class(Loader)的ORM构建一个应用程序。我的大多数数据库模型都有一个“name”列。我的一个控制器主要使用“name”列搜索所有架构类。但是,有几个模式类没有“name”列

是否可以在DBIx::Class中添加一种使用另一列的“虚拟”列:

$resultset('Account')->search({name => 'foobar'})
秘密改写

$resultset('Account')->search({accountnumber => 'foobar'})
我希望我说的有道理,有人吗

Thx,
Rob

据我所知,这是不可能的-无论如何,作为搜索查询中的一个键是不可能的。您可以做的是为所有resultset类(您正在使用的,对吗?)创建一个基类,它有一个方法
find\u by\u name
或类似方法,可以在正确的列上执行此搜索。该列可以默认为名称,但会被class属性覆盖,您可以使用该属性进行设置

您可以使用的
default\u resultset\u class
属性将此基类设置为所有结果集的默认结果集类