0
我目前在ColdFusion 9(cfscript)中构建了自己的MVC,由于某些原因,我在创建的基本模型中遇到了一些麻烦。为什么我的属性不能在cfscript中设置?
public function init(required itemName){
var columns = {};
var result = '';
var type = '';
var length = '';
var key = '';
var field = '';
var allowNull = '';
setModel(itemName);
this.table = this.model.tableName();
this.qdb = request.qwerkfactory.newQDB();
this.qdb.init(tableName = this.table);
this.qdb.getTableAttributes();
this.result = this.qdb.execute().getResult();
for(i = 1; i LT this.result.recordcount; i++){
result = this.result;
type = ReReplaceNoCase(result['type'][i], '[0-9()]', '', 'all');
length = ReReplaceNoCase(result['type'][i], '[a-z()]', '', 'all');
key = (len(result['key'][i])) ? result['key'][i] : false;
field = result['field'][i];
allowNull = result['null'][i];
columns["#field#"] = {};
columns["#field#"].type = "#type#";
columns["#field#"].length = "#length#";
columns["#field#"].key = "#key#";
columns["#field#"].null = "#allowNull#";
}
setTableAttributes(columns);
return this.model;
}
这是我的方法,充当我的模型组件的构造方法。它正在为特定的表创建表模式,然后将其返回给继承此基类的模型。不过,我已经定义了组件调用TableColumn来的属性,当我在一个setter方法进行设置:
public function setTableAttributes(required struct attr){
this.tableColumns = arguments.attr;
}
它将它所罚款在这一点上,当我writeDump()this.tableColumns它返回正确的结果。但是,当使用getter时,它表示tableColumns在此处未定义。我究竟做错了什么?
此外,QDB是我的数据库抽象层的框架,这是我的代码液滴中的参考。 – davidbenjamin998 2014-09-13 16:53:53
当你说你正在使用getter,你是说你有一个函数返回'this.tableColumns'? – 2014-09-14 07:01:32