Проблема при возврате запроса из вызова метода Coldfusion - PullRequest
1 голос
/ 29 сентября 2010

Хорошо, я создал объект и все в порядке.Я могу легко вызывать различные методы этого объекта, например myobject.getId (), myObject.getName () и т. Д. Все эти примеры возвращают либо строковое, либо числовое значение.

Теперь у меня есть ещеметод, который возвращает запрос.Я cfdumped, что возвращается методом, и это действительно запрос, который возвращается.

Когда я пытаюсь выполнить cfloop через запрос, я получаю ошибку.

Вот код cfloop:

<cfloop query="myObject.myFunction()">
    <p><cfoutput>#myObject.myFunction().title#</cfoutput></p>
</cfloop>

Полученная ошибка ссылается на самую первую строку и говорит:

недопустимое объявление переменной [myObject.myFunction ()]

Есть мысли?Заранее спасибо!

1 Ответ

6 голосов
/ 29 сентября 2010

ОК, так что вам просто нужно немного изменить код, чтобы вы сначала вызывали запрос, например,

<cfset qData = myObject.myFunction() />

И тогда вы можете зацикливаться на этом.

<cfloop query="qData">
    <p><cfoutput>#qData.title#</cfoutput></p>
</cfloop>

Причина в том, что тег <cfloop/> ожидает объект запроса, а не ссылку на функцию.

Вы можете попытаться проверить, работает ли <cfloop query="#myObject.myFunction()#"> (с #), но я не уверен, что так и будет. Кроме того, каждый вызов внутри цикла, т.е. #myObject.myFunction().title, будет перезапускать запрос. Не хорошо, очевидно!

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...