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

时间:2015-09-06 15:22:32

标签: coldfusion cfwheels

我是ColdFusion的新手,目前正在使用CFWheels Framework。我有一个片段,使用带有两个参数名称和时间的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. 如果是,则返回json格式的行,如php中的echo json_encode
  3. else创建新记录并使用params重定向到另一个操作
  4. 我被困在第1步,它告诉我

    The value for cfqueryparam cannot be determined
    

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

1 个答案:

答案 0 :(得分:1)

只是分享答案。

<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>