Orm CFWheels-如何在数据库列中增加数字?
只是想知道,使用cform,我如何增加列中的数字 在直起式SQL中,我将执行以下操作: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
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();例如,当框架尝试做世界上的每件事时,我感到羞耻。我还没有尝试过这个,但从逻辑上看,它看起来是合理的!谢谢。我还没试过这个,但从逻辑上看,它看起来不错!谢谢