2013-01-31 5 views
1

Я ищу цикл для запроса и хотел бы использовать группировку, например, используя cfoutput. Я знаю, что CF10 добавил эту поддержку, но есть ли сценарий, который эмулирует это поведение, чтобы элементы могли быть легко перезаписаны?Групповые запросы внутри cfloop


Edit: Есть способы обойти отсутствие группировки в cfloop, переставив cfoutput тегов, поэтому они не являются вложенными. Причина, по которой я искал обходное решение cfloop, заключается в том, что при вложении cfoutput вам нужно использовать результаты из того же запроса. Я бы хотел использовать свой QoQ и пропустить результат.

+1

Если вы хотите запрограммировать запрос как можно с помощью '', почему вы не просто используете ''? –

+0

Если у вас уже есть '', вы не можете вставить другой. И если бы это не было необходимо, они, вероятно, не включили бы его в последнюю версию ColdFusion. – Daniel

+2

Не нужно обрываться. Я пытаюсь понять вашу проблему. Если бы вы сказали, что с самого начала мне не нужно было спрашивать, не так ли? Я никогда не предполагал, что функциональность CF10 не была находкой (я был одним из главных сторонников ее перевода на язык, как это бывает). Я спросил, почему вы не могли просто использовать '', который вы - никоим образом - не объяснили в своем вопросе. Вы должны по-прежнему обновлять свой вопрос, чтобы включить эту информацию, поскольку это очень важно для нее. –

ответ

3

ОК, так что вы хотите сделать такую ​​вещь:

<cfoutput query="query1"> 
    <!--- stuff ---> 
    <cfoutput query="query2" group="col> 
     <!--- more stuff ---> 
     <cfoutput> 
      <!--- still more stuff ---> 
     </cfoutput> 
     <!--- almost the last stuff ---> 
    </cfoutput> 
    <!--- last stuff ---> 
</cfoutput> 

?

И второй цикл дает ошибку:

Invalid tag nesting configuration. 

A query driven cfoutput tag is nested inside a cfoutput tag that also has a query attribute. This is not allowed. Nesting these tags implies that you want to use grouped processing. However, only the top-level tag can specify the query that drives the processing. 

Вы должны быть в состоянии пересмотреть, что:

<cfloop query="query1"> 
    <cfoutput> 
     <!--- stuff ---> 
    </cfoutput> 
    <cfoutput query="query2" group="col> 
     <!--- more stuff ---> 
     <cfoutput> 
      <!--- still more stuff ---> 
     </cfoutput> 
     <!--- almost the last stuff ---> 
    </cfoutput> 
    <cfoutput> 
     <!--- last stuff ---> 
    </cfoutput> 
</cfloop> 

Там еще один вариант, чтобы эмулировать цикл группы, если необходимо. Но это куча мышления и набора текста, которые я бы предпочел избежать, если бы мог, поэтому дайте мне знать, работает ли этот подход в первую очередь.

+1

«Это куча мышления и ввода текста, я бы предпочел избежать», согласился, я просто подумал, что кто-то сделал бы это уже, поскольку требование для этой функциональности не кажется таким необоснованным , Опция, которую вы показали, - это то, как я буду заниматься этим, если захочу реорганизовать код. – Daniel

+1

Я уверен, что у кого-то будет какой-то код, который они выберут в любую минуту. Я удивлен, что Питер Боутон еще не появился (ты * сделал * петь «Кандиман Кандиман Кандиман Кандиман Кандиман», верно? ;-) –

+0

нет У меня еще нет :( – Daniel