Perl 在Catalyst::Controller::Formbuilder中配置表单路径

Perl 在Catalyst::Controller::Formbuilder中配置表单路径,perl,catalyst,Perl,Catalyst,使用Catalyst::Controller::FormBuilder模块处理Catalyst应用程序中的表单 文档中说您可以如下设置表单路径: form_path=>File::Spec->catfile($c->config->{home},'root','forms'), 但是在我的应用程序中对config()的调用是在基本模块的顶层。因此,$c是未定义的。所以我不能调用$c->config->{home} 配置表单路径的正确方法是什么?您应该能够使用\uuu包\uuu->config散列

使用Catalyst::Controller::FormBuilder模块处理Catalyst应用程序中的表单

文档中说您可以如下设置表单路径:

form_path=>File::Spec->catfile($c->config->{home},'root','forms')
,

但是在我的应用程序中对config()的调用是在基本模块的顶层。因此,$c是未定义的。所以我不能调用$c->config->{home}


配置表单路径的正确方法是什么?

您应该能够使用
\uuu包\uuu->config
散列访问已从应用程序主模块设置的配置值。示例:
\uuuuuu-PACKAGE\uuuuu->config->{home}
\uuuuuuu-PACKAGE\uuuuu->config->{Controller::FormBuilder'}->{form path}


如果您试图在应用程序主模块中设置FormBuilder配置,您应该能够使用文档中提供的代码,只需将
$c->config->{home}
替换为
\uu PACKAGE->config->{home}
。我想他们甚至可能犯了一个错误,没有这样做,但我不确定。

AppName->path\u to(qw/root forms/)
?谢谢Jonathon,回答得好。这是有效的:form_path=>File::Spec->catfile(AppName->path_to(qw'etcforms')),我将表单、模板和配置从根目录中移到etc。例如,我发现我可以通过访问获取模板副本等。我不喜欢这样,所以我清除了根上的东西,这样就不会再发生了。