CachePut跳过必填字段

时间:2018-12-20 21:48:54

标签: caching coldfusion optional-parameters coldfusion-2016 cfcache

我要使用CachePut()。我特别要

 CachePut(id = _attr.path, value = attr.qryPath, region = variables.cacheRegion);

idvalueregion分别是第一,第二和第五参数。

Adob​​e表示从第3个到最后一个参数是可选的。来源:https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-c-d/CachePut.html

我如何通过第一,第二和第五?尝试时,我得到:

enter image description here

1 个答案:

答案 0 :(得分:3)

从上评论:

CF2016没有执行命名参数。从CF2018开始。因此,您必须删除名称并在第3位和第4位传递一些内容。通常,您只需传递正常的默认值即可。我不确定CF2016中此标记的含义是什么,但是F2018 doc http://cfdownload.adobe.com/pub/adobe/coldfusion/2018/publicBeta/NamedParametersColdFusion2018.pdf似乎表明默认值都是空字符串。

尝试

CachePut(_attr.path,attr.qryPath,"","",variables.cacheRegion) ;

示例:

https://cffiddle.org/app/file?filepath=a253f587-43fa-482f-b4cd-c7bbb8b45f3d/252b1e4b-d303-4a16-9d80-7c657e6e7770/7c0dc772-099c-4827-8e2f-068b2e32a4d8.cfm

<cfscript>
    attr.Path = "_path" ;
    attr.qryPath = "querypath" ;
    variables.cacheRegion = "newCacheRegion" ;

    CacheRegionNew(variables.cacheRegion);

    //WriteDump(CacheGetProperties(variables.cacheRegion));

    CachePut(attr.Path,attr.qryPath,"","",variables.cacheRegion);

    writeDump(CacheGet(attr.Path,variables.cacheRegion));
</cfscript>