如何在Catalyst :: Model :: Adapter中的prepare_arguments中访问真正的App

时间:2010-11-02 10:11:10

标签: perl adapter catalyst

我有一个催化剂特定的模型类,我想要实现 通过在Catalyst :: Model :: Adapter

的帮助下包装它
package MyClass;
use Moose;
has 'c' => ( is => 'ro' , isa => 'Catalyst' );
1;

package MyAPP::Model::MyClass
use base 'Catalyst::Model::Adaptor';
sub prepare_arguments {
       my ($self, $app) = @_; # $app sometimes written as $c
       return { c => $app };
}
1;

问题是这里$ app不是MyAPP的实例,只是 班级名称'MyApp'。

如何从此方法访问MyApp实例?

1 个答案:

答案 0 :(得分:2)

这是不可能的。如果您需要应用程序的实例,则需要根据请求构建模型。 Catalyst::Model::Factory::PerRequest会有所帮助!