0

是的......(我......再次!)

我正在尝试解决一些错误,当我在我的控制器中转储 allErrors() 时,它只是一个空数组,当我知道它不应该是一个事实时。

链接.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 />

只是一个空白数组!怎么回事?!

即使我然后尝试:

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

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

这里到底发生了什么?我是白痴还是什么?

谢谢。迈克尔。

更新:

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

4

1 回答 1

2

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

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

我在 link.save() 方法之前将其声明为一个变量...所以我猜 CFWheels 那时从来不知道有错误...因为显然您在知道错误之前没有尝试保存对吗?

呸!逻辑。

于 2012-08-04T18:25:23.297 回答