我基本上想允许这样的事情:
<cf_datatables datasource="#someDS#">
<cf_datatables_records>
SELECT
`someColumn1`,
`someColumn2`
FROM
`#someDB#`.`#someT#`
WHERE
`someColumn1` = <cfqueryparam value="#someValue#" cfSqlType="CF_SQL_INTEGER">
LIMIT
10
</cf_datatables_records>
</cf_datatables>
自cf_datatables_records
定义标签(子)是一个子查询/记录集,将在cf_datatables
自定义标签(父)中使用。这将是执行上述操作时的 SQL 结果:
SELECT
SQL_CALC_FOUND_ROWS *
FROM (
SELECT
`someColumn1`,
`someColumn2`
FROM
`#someDB#`.`#someT#`
WHERE
`someColumn1` = <cfqueryparam value="#someValue#" cfSqlType="CF_SQL_INTEGER">
LIMIT
10
) AS `base`
UNION (...)
WHERE ... GROUP BY ... ORDER BY ... LIMIT ... etc. (depends on the provided parameters)
cfqueryparam
不幸的是,ColdFusion 在将标签传递给自定义标签之前对其进行解析,从而导致:
Context validation error for tag cfqueryparam. The tag must be nested inside a cfquery tag.
如果我省略它确实有效,cfqueryparam
但这显然是不可接受的。解析查询参数也是如此。
知道如何解决这个问题吗?