【问题标题】:Configuring form_path in Catalyst::Controller::Formbuilder在 Catalyst::Controller::Formbuilder 中配置 form_path
【发布时间】:2012-03-01 17:39:41
【问题描述】:

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

文档说您可以像这样设置 form_path:

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

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

请问配置form_path的正确方法是什么?

【问题讨论】:

  • AppName->path_to(qw/root forms/)?
  • 谢谢乔纳森,很好的回答。这有效:form_path => File::Spec->catfile(AppName->path_to(qw'etc forms')),我将表单、模板和配置移出根目录。例如,我发现我可以通过转到example.com/forms/search/page.fb 来获取模板等的副本。我不喜欢这样,所以我从根目录中清除了这些东西,这样就不会再发生这种情况了。

标签: perl catalyst


【解决方案1】:

您应该能够使用 __PACKAGE__->config 哈希从应用程序的主模块中访问已设置的配置值。示例:__PACKAGE__->config->{home}__PACKAGE__->config->{'Controller::FormBuilder'}->{form_path}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多