如何在Catalyst上使用DBIx助手?

sco*_*ozy 0 perl catalyst dbix-class

我想用一个DBIx ResultSet的帮手,也就是DBIx::Class::Helper::ResultSet::Random,在我催化剂的应用.

包文档显示了它是如何从DBIx::Class::ResultSet类中加载的,但据我所知,我没有这些,因为我正在使用它DBIx::Class::Schema::Loader来创建模式.

我试过把它__PACKAGE__->load_components('Helper::ResultSet::Random')放在我的Schema::Result,但是没有用:无法通过包"DBIx :: Class :: ResultSet"找到对象方法"rand".

应该怎么做?

小智 5

您应用于DBIC::Helper::ResultSet::RandomResult类(例如,您已经Schema/Result/Tbl.pm创建了它DBIC::Schema::Loader).

DBIC::Helper::ResultSet::Random 应该应用于ResultSet(而不是Result)类.

所以,你只需要Schema/ResultSet/Tbl.pm像这样创建:

package Schema::ResultSet::Tbl;
use strict;
use warnings;

use parent 'DBIx::Class::ResultSet';

__PACKAGE__->load_components('Helper::ResultSet::Random');

1;
Run Code Online (Sandbox Code Playgroud)