2013-08-24 6 views
0

Я использую поиск cf (или, скорее, альтернативу на основе скриптов в Railo), чтобы выполнить базовый поиск по ключевым словам, но я получаю сообщение об ошибке при отсутствии критериев.Как я могу указать пустой критерий для cfsearch?

Что я хотел бы получить, это пустой объект запроса. Это возможно?

enter image description here

я могу сделать проверку на длину строки и т.д., используя LEN(), но это означало бы, я никогда не получить объект запроса возвращается, который является то, что я хотел.

Я что-то упустил?

Thanks, Mikey.

+3

Вы можете создать пустой объект запроса с [QueryNew] (http://railodocs.org/querynew) - то, что вы пытаетесь это сделать? –

+0

Я использую ajax для возврата запроса, который структурирован в JSON. Поскольку запрос выполняется с помощью ключа вверх, есть вероятность, что аргумент предоставлен пустым/пустым, что вызывает эту ошибку 500. Я мог бы сделать больше проверок в самом JS, я думаю, но я всегда хотел бы защитить его, насколько я могу, с предсказуемыми данными. Сама ошибка кажется довольно странной, хотя - любая идея, почему это происходит? –

+0

Сделайте проверку len в JS и не отправляйте запрос, если он не является (как минимум) длиной 2 или более символов. Не просто отвечать на ошибки CF с пустым поиском - отображать подходящее сообщение об ошибке. –

ответ

0

Как сказал Питер, так же просто, как:

<cftry> 
    <cfsearch attributes> 
<cfcatch type="application"> 
    <cfset MyQuery = QueryNew('column1','column2','column3')> 
</cfcatch> 
</cftry> 

ИЛИ

<cfif len(attributes.searchCriteria)> 
    <cfsearch attributes> 
<cfelse> 
    <!--- return blank query object ---> 
</cfif> 
+0

Я думал об этом, но это просто показалось немного ... грязным. Я дам ему ход, хотя, возможно, я получу себя :) спасибо. Любая идея, почему она вообще возвращает ошибку? Можете ли вы не указывать пустые критерии? Кажется немного странной ошибкой. –

+0

Кажется совершенно верным для меня, вы ищете «ничего»? Что должно оценивать результаты? Более элегантный подход состоял бы в том, чтобы просто проверить len() переданного в аргументе. – BKK