/ / CFWheels - Perché allErrors () restituisce un array vuoto? - coldfusion, railo, cfwheels

CFWheels - Perché allErrors () restituisce un array vuoto? - coldfusion, railo, cfwheels

Sì ... (io ... ancora!)

Sto cercando di risolvere alcuni errori e quando vado a scaricare allErrors () nel mio controller, è semplicemente un array vuoto, quando so per certo che non dovrebbe essere.

link.cfc (modello)

<cffunction name="init">

<cfset validate(property="linkURL", method="validateUniqueUrl", when="onCreate") />

</cffunction>

<cffunction name="validateUniqueUrl" access="public">
<cfif this.exists(where="linkURL="#this.linkURL#"")>
<cfset this.addError(property="linkURL", name="linkExists", message="The link you entered already exists.") />
</cfif>
</cffunction>

Se il collegamento esiste, visualizzo correttamente l'errore nella mia vista:

<cfoutput>#errorMessagesFor("link")#</cfoutput>

Tuttavia, nel mio controller, voglio scaricare tutti gli errori sul modello facendo:

<cfdump var="#link.allErrors()#" abort />

Solo un array vuoto! WTF ?!

Anche se poi provo:

<cfdump var="#link.errorsOn("link")#" abort />

... di nuovo, un array EMPTY.

Cosa diavolo sta succedendo qui? Sono un idiota o qualcosa del genere?

Grazie. Michael.

AGGIORNARE:

Ok, quindi sembra usare <cfdump var="#link.allErrors()#" abort /> a mio avviso funziona, ma non nel controller? Perchè no? Ho bisogno di questo nel controller in modo che possa quindi effettuare un reindirizzamento!

risposte:

2 per risposta № 1

Ok, l'ho capito da solo. Tipico che questo succede sempre dopo che ho posto la domanda. Pensiero laterale ??

Ho dovuto chiamare il errorsOn() metodo DOPO il link.save() metodo.

Stavo dichiarando questo in una variabile PRIMA delmetodo link.save () ... quindi suppongo che CFWheels non abbia mai saputo a quel punto che c'erano degli errori ... perché ovviamente tu dovresti tentare un salvataggio prima di conoscerlo correttamente?

BHAM! Logica.