/ / CFWheels - Чому allErrors () повертає порожній масив? - холодний синтез, рейло, колеса

CFWheels - Чому allErrors () повертають порожній масив? - холодна футеровка, раїло, колісні диски

Так ... (я ... ще раз!)

Я намагаюся усунути деякі помилки, і коли я збираюся скидати 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 на той момент ніколи не знав, що були помилки ... тому що, очевидно, ти не намагався зберегти, перш ніж знати про його помилки, чи не так?

БХАМ! Логіка.