我想添加一个插件中的所有函数都可以访问的变量,但是我得到一个变量未定义的错误。这是我的插件:
component
mixin="Controller"
{
public any function init() {
this.version = "1.0";
return this;
}
public void function rememberMe(string secretKey="rm_#application.applicationName#") {
this.secretKey = arguments.secretKey;
}
public void function setCookie(required string identifier) {
// Create a cookie with the identifier and encrypt it using this.secretKey
// this.secretKey is not available, though, and an error is thrown
writeDump(this.secretKey); abort;
}
}
我从我的 Sessions.cfc 控制器调用插件:
component
extends="Controller"
{
public void function init() {
// Call the plugin and provide a secret key
rememberMe("mySecretKey");
}
public void function remember() {
// Call the plugin function that creates a cookie / I snipped some code
setCookie(user.id);
}
}
当我在插件中转储时
this.secretKey
,我得到一个变量未定义的错误。该错误告诉我在Sessions.cfc控制器this.secretKey
中不可用。但我不是从 Sessions.cfc 中转储,而是从插件的 CFC 中转储,如您所见。为什么?如何
this.secretKey
在我的插件中设置范围,以便 setCookie() 可以访问它?到目前为止,无论我在函数、伪构造函数还是 init() 中添加定义,都失败了variables
。this
为了更好的衡量,我投入了variables.wheels.class.rememberME
,但无济于事。
这是错误:
Component [controllers.Sessions] has no acessible Member with name [secretKey]