cfwheels 查找记录并输出为 JSON 编码

cfwheels Find Records and Output as JSON Encoded

我是 ColdFusion 的新手,目前使用 CFWheels 框架。我有一个片段,它使用 jquery post 从视图发送一个 ajax 请求,带有两个参数名称和时间。

$(".building").on("blur", function() {
      $.post("index.cfm/audit/building", { name: "John", time: "2pm" })
          .done(function( data ) {
            alert( "Data Loaded: " + data );
          });
        });

我的控制器动作

<cffunction name="building">
        <cfscript>
            categories = model("buildings").findByKey(params.name);

            test = params.name & params.time;
            renderText(test);
        </cfscript>

    </cffunction>

我的模型

<cfcomponent extends="Model">
    <cffunction name="init">
        <cfset table("buildings")>
        <cfset hasMany("rooms")>
    </cffunction>
</cfcomponent>

我想做一个简单的任务如下

  1. 检查数据库中是否存在通过名称命名的建筑物
  2. if so then return json 格式的行,如 echo json_encode in php
  3. 否则创建新记录并使用参数重定向到另一个操作

我卡在了第 1 步,它告诉我

The value for cfqueryparam cannot be determined

这是什么意思?请帮助,如果有人还可以告诉我如何以 json 形式呈现查询数据以供 jquery post 阅读。

只是分享答案。

<cffunction name="building">
        <cfscript>
            buidling = model("buildings").findOneByName(params.name);

            if(IsObject(buidling)) {

                //return json format
                renderText(SerializeJSON(buidling));                                

            } else {

                //enter new record
                new_building = model("buildings").new();
                new_building.name = params.name;
                new_building.save();

                //return id json
                renderText(SerializeJSON(new_building));            
            }   
        </cfscript>

    </cffunction>