Так ... (я ... ще раз!)
Я намагаюся усунути деякі помилки, і коли я збираюся скидати allErrors () у своєму контролері, це просто порожній масив, коли я точно знаю, що цього не повинно бути.
link.cfc (модель)
<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>
Якщо посилання існує, я неправильно сприймаю помилку:
<cfoutput>#errorMessagesFor("link")#</cfoutput>
Однак у своєму контролері я хочу скинути всі помилки на моделі, виконавши:
<cfdump var="#link.allErrors()#" abort />
Просто порожній масив! WTF ?!
Навіть якщо я тоді спробую:
<cfdump var="#link.errorsOn("link")#" abort />
... знову ПУСТИЙ масив.
Що в світі тут відбувається? Я ідіот чи що?
Дякую. Михайло.
UPDATE:
Добре, здається, використовую <cfdump var="#link.allErrors()#" abort />
на мій погляд працює, але не в контролері? Чому ні? Мені це потрібно в контролері, щоб потім я міг зробити переспрямування!
Відповіді:
2 для відповіді № 1Гаразд, я сам це зрозумів. Типово, що це завжди відбувається через кілька хвилин після того, як я розмістив запитання. Бічне мислення ??
Мені довелося зателефонувати в errorsOn()
метод ПІСЛЯ link.save()
метод
Я оголошував це у змінну ДОlink.save () метод ... тому, я думаю, CFWheels на той момент ніколи не знав, що були помилки ... тому що, очевидно, ти не намагався зберегти, перш ніж знати про його помилки, чи не так?
БХАМ! Логіка.