cfwheels Поиск записей и вывод в формате JSON

Я новичок в ColdFusion, в настоящее время использую CFWheels Framework. У меня есть фрагмент, который отправляет запрос ajax из представления, используя сообщение jquery с двумя параметрами: имя и время.

$(".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, например, echo json_encode в php
  3. иначе создайте новую запись и перенаправьте на другое действие с параметрами

Я застрял на шаге 1, и это говорит мне

The value for cfqueryparam cannot be determined

Что это значит? Пожалуйста, помогите, также если кто-нибудь может также сказать мне, как отображать данные запроса в форме json для чтения сообщения jquery.


person Saad A    schedule 06.09.2015    source источник


Ответы (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>
person Saad A    schedule 06.09.2015