【问题标题】:Access config from inside Catalyst Model从 Catalyst 模型内部访问配置
【发布时间】:2012-07-31 08:14:12
【问题描述】:

我正在尝试从这样的模型中访问 Catalyst 配置哈希(人为示例):

package Dabadie::Model::DirFind;
use Moose;
use namespace::autoclean;

extends 'Catalyst::Model';use namespace::autoclean;

sub list {
     my ($self, $c) = @_;
     return $c->config();
}

然而,$c 是 undef,并且 $self->config 什么也不返回。

谁能帮忙解决这个问题?

谢谢,

西蒙娜

【问题讨论】:

    标签: perl catalyst


    【解决方案1】:

    这符合预期 - 根据 MVC 设计理念,您的模型应该与控制器逻辑分离。

    当您在控制器代码中初始化模型时,您可以将 $c 作为参数传递,但这会导致您进入违反模式的“互连”模型和控制器设计,但这样做可能有意义 - 是您的模型设置配置参数或只是接收它们?如果您通过模型设置配置参数,您可能会遇到设计问题。

    或者只是将配置哈希作为参数传递给模型初始化:

     $c->model('AppModel')->new(config => $configParameters); 
    

    这将要求您在模型中声明一个 moose 属性以捕获构造时的配置参数。

    has 'config' ( isa => 'HASH', is => 'ro' );
    

    更多关于 Moose 属性here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      相关资源
      最近更新 更多