В настоящее время я создаю свой собственный MVC в ColdFusion 9 (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;
}
Это мой метод, который действует как метод конструктора для моего компонента модели. Что он делает, так это получает схему таблицы для конкретной таблицы, а затем возвращает ее модели, которая наследует этот базовый класс. Однако я определил свойство для компонента с именем tableColumns, когда установил его в методе установки:
public function setTableAttributes(required struct attr){
this.tableColumns = arguments.attr;
}
В этот момент он устанавливает его нормально, когда я пишу Dump() this.tableColumns, он возвращает правильный результат. Но при использовании геттера он говорит, что tableColumns не определено в этом. Что я делаю не так?
this.tableColumns
? - person James A Mohler   schedule 14.09.2014