/ / CFWheels - Dlaczego allErrors () zwraca pustą tablicę? - coldfusion, railo, cfwheels

CFWheels - Dlaczego allErrors () zwraca pustą tablicę? - coldfusion, railo, cfwheels

Tak ... (ja ... znowu!)

Próbuję rozwiązać niektóre błędy i kiedy idę do zrzutu allErrors () w moim kontrolerze, jest to po prostu pusta tablica, gdy wiem na pewno, że nie powinno być.

link.cfc (model)

<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>

Jeśli link istnieje, błąd widzę poprawnie:

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

Jednak w moim kontrolerze chcę zrzucić wszystkie błędy na modelu, wykonując:

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

Tylko pusta tablica! WTF ?!

Nawet jeśli spróbuję:

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

... ponownie, PUSTA tablica.

Co tu się dzieje na świecie? Czy jestem idiotą czy coś takiego?

Dzięki. Michael.

AKTUALIZACJA:

Ok, więc wydaje się, że używa <cfdump var="#link.allErrors()#" abort /> moim zdaniem działa, ale nie w kontrolerze? Dlaczego nie? Potrzebuję tego w kontrolerze, abym mógł dokonać przekierowania!

Odpowiedzi:

2 dla odpowiedzi № 1

Ok, sam to rozgryzłem. Typowe, że zawsze dzieje się to kilka minut po opublikowaniu pytania. Myślenie boczne?

Musiałem zadzwonić do errorsOn() metoda PO link.save() metoda.

Deklarowałem to jako zmienną PRZEDmetoda link.save () ... więc myślę, że CFWheels nigdy nie wiedziało, że w tym momencie wystąpiły błędy ... ponieważ oczywiście nie próbowałeś zapisać, zanim się pomylisz?

BHAM! Logika.