从内部催化剂模型访问配置(Access config from inside Catalyst Mo

2019-10-17 02:21发布

我想从这样的(人为的例子)模型中访问的催化剂配置哈希:

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

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

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

然而,$ c是民主基金,和$自我>配置没有返回。

任何人都可以帮助弄清楚这一个?

谢谢,

西蒙娜

Answer 1:

这是因为预期的 - 你的模型应该是从你的控制器逻辑按照MVC设计理念可分离。

你可以通过$ C作为一个参数,当你初始化模型在控制器代码,但是这会导致你违反该模式的“互连”模型和控制器的设计,但它可能是有意义的做到这一点 - 是你的模型设置的配置参数或者只是接受他们? 如果您是通过模型设置配置参数,你可能有一个设计问题。

或者只是通过配置哈希作为参数,而不是在初始化模式:

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

这就需要你在你的模型申报驼鹿属性来捕捉建筑的配置参数。

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

更多关于穆斯属性在这里



文章来源: Access config from inside Catalyst Model
标签: perl catalyst