我想在Catalyst应用程序中使用DBIx结果集助手,即DBIx::Class::Helper::ResultSet::Random
,。
包文档显示了它是如何从DBIx::Class::ResultSet
类加载的,但据我所知,我没有这些,因为我使用DBIx::Class::Schema::Loader
来创建模式。
我已尝试将此__PACKAGE__->load_components('Helper::ResultSet::Random')
放入我的Schema::Result
,但这不起作用:无法找到对象方法" rand"通过包" DBIx :: Class :: ResultSet"。
这应该怎么做?
答案 0 :(得分:5)
您将DBIC::Helper::ResultSet::Random
应用于您的结果类(例如,您已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;