我想从这样的(人为的例子)模型中访问的催化剂配置哈希:
package Dabadie::Model::DirFind;
use Moose;
use namespace::autoclean;
extends 'Catalyst::Model';use namespace::autoclean;
sub list {
my ($self, $c) = @_;
return $c->config();
}
然而,$ c是民主基金,和$自我>配置没有返回。
任何人都可以帮助弄清楚这一个?
谢谢,
西蒙娜
这是因为预期的 - 你的模型应该是从你的控制器逻辑按照MVC设计理念可分离。
你可以通过$ C作为一个参数,当你初始化模型在控制器代码,但是这会导致你违反该模式的“互连”模型和控制器的设计,但它可能是有意义的做到这一点 - 是你的模型设置的配置参数或者只是接受他们? 如果您是通过模型设置配置参数,你可能有一个设计问题。
或者只是通过配置哈希作为参数,而不是在初始化模式:
$c->model('AppModel')->new(config => $configParameters);
这就需要你在你的模型申报驼鹿属性来捕捉建筑的配置参数。
has 'config' ( isa => 'HASH', is => 'ro' );
更多关于穆斯属性在这里