我正在尝试解决一些错误,当我在我的控制器中转储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 />
,但不在控制器中?为什么不?我需要在控制器中使用它,以便我可以进行重定向!
答案 0 :(得分:2)
好的,我自己弄清楚了。典型的是,这总是在我发布问题几分钟后发生。横向思维??
我必须在errorsOn()
方法之后调用link.save()
方法。
我在link.save()方法之前将其声明为变量...所以我猜CFWheels在那一点上从来不知道有错误...因为很明显你在知道错误之前没有尝试过保存?
BHAM!逻辑。