2017-01-17 1 views
2

Ich habe ein Modell, surveyTemplate, das alle bis auf eine seiner Eigenschaften von einer Abfrage ausgefüllt hat.Warum kann ich RecordCount auf eine Abfrage verweisen, die in ein Objekt eingebettet ist, aber ich kann nicht darüber hinwegschleifen?

Ich speichere eine zusätzliche Abfrage in der letzten Eigenschaft des Modells, die aufgerufen wird, surveyTemplateQuestions.

Wenn ich Folgendes tun:

writeDump(var="#surveyTemplateObj#"); abort; 

ich das Modell korrekt mit der letzten Eigenschaft enthält die Abfragedaten gefüllt.

Ich kann auch dies tun:

writeDump(var="#surveyTemplateObj.getSurveyTemplateQuestions()#"); abort; 

Und jetzt bekomme ich nur die Abfrage in der letzten Eigenschaft des Modells gespeichert.

Also, warum kann ich dies nicht tun:

<cfoutput query="prc.surveyTemplateObj.getSurveyTemplateQuestions()"> 

Wenn die oben tun ich die folgende Fehlermeldung erhalten:

The value of the attribute query, which is currently prc.surveyTemplateObj.getSurveyTemplateQuestions(), is invalid.

Aber dann kann ich diese stattdessen tun:

<cfloop from="1" to="#prc.surveyTemplateObj.getSurveyTemplateQuestions().RecordCount#" index="i"> 

Wie kann es sein, dass, wenn ich eine cfdump der letzten Eigenschaft des Objekts als eine Abfrage zeigt, kann ich eine 012 tunfür das Abfrageobjekt, aber ich kann das Abfrageobjekt über cfoutput nicht durchlaufen?

+0

Nur um zu klären, wenn Sie [die Dokumentation] sehen (https://helpx.adobe.com/coldfusion/cfml-reference/ coldfusion-tags/tags-mo/cfoutput.html), es sagt, dass es den * name * der Abfrage erwartet, dh string, keine Abfrage * object * oder so etwas wie eine Funktion, die ein Abfrageobjekt zurückgibt. – Leigh

Antwort

3

Dies:

prc.surveyTemplateObj.getSurveyTemplateQuestions() 

ist eine Funktion Ergebnis. Wenn Sie durch sie Schleife wollen, weisen Sie auf eine Variable zuerst:

myVariable = prc.surveyTemplateObj.getSurveyTemplateQuestions(); 

<cfoutput query = "myVariable"> 
etc 
+0

Hallo Dan, danke für die Antwort. Ich glaube, ich habe es versucht, aber ich werde jetzt gleich nachsehen. –

+0

Nun, ich stehe korrigiert. Ich muss schon früher geschummelt haben, Sie sind natürlich richtig. Vielen Dank! –

Verwandte Themen