Orm CFWheels-如何在数据库列中增加数字?

Orm CFWheels-如何在数据库列中增加数字?,orm,coldfusion,railo,cfwheels,Orm,Coldfusion,Railo,Cfwheels,只是想知道,使用cform,我如何增加列中的数字 在直起式SQL中,我将执行以下操作: UPDATE table SET field = field + 1 WHERE ... 我希望避免从列中“获取”值并手动递增它。我会在我的应用程序中做很多这方面的工作,所以这是我可以不用的开销(另外,我还希望我的代码保持简单和优雅) 像这样的东西行吗 <cfset post = model("post").findByKey(99) /> <cfset post.update( my

只是想知道,使用cform,我如何增加列中的数字

在直起式SQL中,我将执行以下操作:

UPDATE table 
SET field = field + 1 
WHERE ...
我希望避免从列中“获取”值并手动递增它。我会在我的应用程序中做很多这方面的工作,所以这是我可以不用的开销(另外,我还希望我的代码保持简单和优雅)

像这样的东西行吗

<cfset post = model("post").findByKey(99) />
<cfset post.update( myColumn = myColumn + 1 ) />


感谢您的支持。

cfwheels中的orm不支持此功能。对于像这样的东西,直接sql是最好的选择。最好的办法是在模型上创建一个自定义方法来封装逻辑。

cfwheels中的orm不支持这一点。对于像这样的东西,直接sql是最好的选择。最好的做法是在模型上创建一个自定义方法来封装逻辑。

如果需要多次重复,可以在base
model.cfc中将其抽象出来:

<cfcomponent extends="Wheels">
    <cffunction name="incrementColumn" returntype="boolean">
        <cfargument name="key" type="string" required="true">
        <cfargument name="property" type="string" required="true">

        <cfset local.record = this.findByKey(arguments.key)>
        <cfset local.record[arguments.property]++>

        <cfreturn local.record.update()>
    </cffunction>
</cfcomponent>

然后您可以从控制器调用它,如下所示:

<cfif post = model("post").incrementColumn(params.key, "myColumn")>
    Success
<cfelse>
    Error
</cfif>

成功
错误

如果需要多次重复,可以在基本的
Model.cfc
中对其进行抽象:

<cfcomponent extends="Wheels">
    <cffunction name="incrementColumn" returntype="boolean">
        <cfargument name="key" type="string" required="true">
        <cfargument name="property" type="string" required="true">

        <cfset local.record = this.findByKey(arguments.key)>
        <cfset local.record[arguments.property]++>

        <cfreturn local.record.update()>
    </cffunction>
</cfcomponent>

然后您可以从控制器调用它,如下所示:

<cfif post = model("post").incrementColumn(params.key, "myColumn")>
    Success
<cfelse>
    Error
</cfif>

成功
错误

这太可惜了!我想使用100%的ORM。哦,好吧。为什么我要在模型上存储自定义SQL查询,而不是这些控制器扩展的controller.cfc?所以我可以做super.updateNumber();例如,IMHO羞耻是当框架尝试做世界上的每件事时。这真是羞耻!我想使用100%的ORM。哦,好吧。为什么我要在模型上存储自定义SQL查询,而不是这些控制器扩展的controller.cfc?所以我可以做super.updateNumber();例如,当框架尝试做世界上的每件事时,我感到羞耻。我还没有尝试过这个,但从逻辑上看,它看起来是合理的!谢谢。我还没试过这个,但从逻辑上看,它看起来不错!谢谢