CFWheels - 为什么allErrors()返回一个空数组?

时间:2012-08-04 17:59:17

标签: coldfusion railo cfwheels

是的......(我......又来了!)

我正在尝试解决一些错误,当我在我的控制器中转储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 />

......再次,一个EMPTY数组。

世界上到底发生了什么?我是个白痴还是什么?

感谢。 迈克尔。

更新

好的,所以看起来在我的视图中使用<cfdump var="#link.allErrors()#" abort />,但不在控制器中?为什么不?我需要在控制器中使用它,以便我可以进行重定向!

1 个答案:

答案 0 :(得分:2)

好的,我自己弄清楚了。典型的是,这总是在我发布问题几分钟后发生。横向思维??

我必须在errorsOn()方法之后调用link.save()方法。

我在link.save()方法之前将其声明为变量...所以我猜CFWheels在那一点上从来不知道有错误...因为很明显你在知道错误之前没有尝试过保存?

BHAM!逻辑。