【问题标题】:update() and save() methods result in "no matching method/function" in railoupdate() 和 save() 方法导致 railo 中“没有匹配的方法/函数”
【发布时间】:2012-07-13 15:22:33
【问题描述】:

我正在尝试运行一个非常快速的更新查询来记录用户的电子邮件地址已确认(在我的用户表中将已确认的 [bit] 列设置为 1 在他们单击通过电子邮件发送的链接后)。这是应该执行的操作:

    <cffunction name="confirmEmail">
    <cfscript>
      user = model("user").findOne(where="id=#params.userid# AND uuid='#params.uuid#'", returnAs="query");
      if(user.recordCount) {
        pageTitle = "E-mail Confirmation Success";
        user.update(confirmed=1);
      } else {
        redirectTo(route="authenticationDenied", alert="Something was wrong with your confirmation string. Please contact site administrators.");
      }
    </cfscript>
  </cffunction>

但是当我提交适当的 URL(我已经转储并且可以看到模型调用找到一个有效记录)时,我在 Railo 3.3.x 中收到以下错误:

找不到匹配的方法/函数 [更新] 与命名参数调用

...在我的代码中突出显示 user.update(confirmed=1); 行。那么我做错了什么?以前我一直使用 save/update(params.user) 或类似的方法来进行这些查询,但这似乎有点过头了;我只想传递一个 1 位更新。

【问题讨论】:

  • 我已经解决了这个问题,但是因为我是新来的,所以在 8 小时内我不会发布自己的问题的答案。我会回来的。

标签: coldfusion railo cfwheels


【解决方案1】:

好的,我的 CTO 是 CFML 和 Wheels 的新手,他在 5 秒内搞定了这一点。因此我猜是“C”。

通过将用户模型作为查询而不是对象返回,我无法访问 update/save() 方法。 (Duh,MVC n00b。)我将它作为查询返回的原因很简单,我一直在做一些公平的事情,以便轻松操作输出,在这种情况下,我可以测试是否存在以我一直拥有的方式记录(如果 recordCount)。但这行得通...

  <cffunction name="confirmEmail">
    <cfscript>
      user = model("user").findOne(where="id=#params.userid# AND uuid='#params.uuid#'");
      if(isObject(user)) {
        user.update(confirmed="1");
      } else {
        flashInsert(error="Something was wrong with your confirmation string. Please contact site administrators.");
        redirectTo(route="authenticationDenied");
      }
    </cfscript>
  </cffunction>

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2015-08-22
    • 2018-07-01
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多