मैं एक पुरानी साइट को सीएफ 10 में परिवर्तित कर रहा हूं और अपने कुछ सहायक कोड को आगे ले जाना चाहता हूं।कोल्डफ्यूजन - सीएफसी सेटर्स में एक क्वेरी को कनवर्ट करना
कोड लग रहा है एक प्रश्न पर, चीजें हैं जो हमारे उदाहरण में हैं पाता है, और उन्हें भरता है:
<cffunction name="populateSelf">
<cfargument name="source" type="query" required="yes" />
<cfif arguments.source.recordcount EQ 1>
<cfloop list="#arguments.source.columnlist#" index="local.col">
<cfif structKeyExists(variables.instance, local.col)>
<cfset variables.instance[local.col] = arguments.source[local.col]) />
</cfif>
</cfloop>
</cfif> <!--- one record? --->
</cffunction>
मैं हमारे वर्तमान 'getMetaData()' उपयोग करने वाली प्रॉपर्टी का एक आसान मूल्यांकन के साथ structKeyExists(variables.instance, local.col)
जगह ले ली है, लेकिन मैं अगली पंक्ति साथ परेशानी हो रही हूँ: <cfset variables.instance[local.col] = arguments.source[local.col]) />
अगर मैं <cfset this[local.col] =arguments.source[local.col] />
के लिए इसे बदल, यह अंतर्निहित setters ध्यान नहीं देता और सिर्फ इस दायरे में परिणाम डालता है ...
आदेश में कोशिश करते हैं और हमारे setters कॉल करने के लिए, मैं कोड के इस बिट की कोशिश की:
<cfset setValue =arguments.source[local.col] />
<cfset evaluate("set#local.col#('#setValue#')" />
लेकिन इस जटिल लगता है और त्रुटि प्रवण (भी तार में किसी भी " '" रों बचने के लिए है)।
कुछ या सभी सीएफसी गुणों को लोड करने के लिए क्वेरी का उपयोग करने का सबसे अच्छा तरीका क्या है बिना स्पष्ट रूप से this.setPROPERTYNAME(query.COLUMN)
को संभवतः कई दर्जन बार कॉल करने के बिना ????
हाँ! "मैं गतिशील तरीके से एक विधि कैसे कॉल करूं?" मैं उपयोग करने के लिए सही क्रियाओं के बारे में नहीं सोच सका ... stoopid छुट्टी, मेरा दिमाग बाहर निकल रहा है। –
हे स्टीफन ... @ बेयनेज़ी का जवाब मेरी तुलना में बेहतर है! मैंने जो सुझाव दिया उसके बजाए आपको जो सुझाव दिया गया उसके साथ चलना चाहिए। –