Php 表达式引擎获取\操作\ id()未解析

Php 表达式引擎获取\操作\ id()未解析,php,expressionengine,Php,Expressionengine,因此,我尝试通过两种方式获取操作ID: $ACT_ID = $this->EE->functions->fetch_action_id("classname", "function"); $ACT_ID = $FNS->fetch_action_id("classname", "function"); 但是,它仍然将此作为输出: {AID:classname:function} 当它的输出进入视图时,它不会解析它。还有什么我需要做的吗?对于EE2,有两种获取ACT

因此,我尝试通过两种方式获取操作ID:

$ACT_ID = $this->EE->functions->fetch_action_id("classname", "function");
$ACT_ID = $FNS->fetch_action_id("classname", "function");
但是,它仍然将此作为输出:

{AID:classname:function} 

当它的输出进入视图时,它不会解析它。还有什么我需要做的吗?

对于EE2,有两种获取ACT ID的方法,具体取决于您将在哪里使用它


如果您在字体结尾/模板中使用它,请使用
$this->EE->functions->fetch_action_id('class','method')
,它将返回模板中的
{AID:class:method}
,模板解析器将用实际的ACT ID替换它;只需要对所有ACT ID进行一次查询。如果找不到有效的ACT ID,则AID字符串将保持模板中的原样


如果您在后端/控制面板中使用它,请使用
$this->EE->cp->fetch_action_id('class','method')
,返回实际的ACT ID。
$this->EE->cp
对象仅在控制面板中可用(例如,
mcp.your_module.php
文件)。如果找不到有效的ACT ID,它将返回
FALSE

函数库中有一个未记录的方法“插入动作ID”,用于解析模板中的动作ID。因此,从插件中,如果您只想获得操作ID号,可以执行以下操作:

$ACT_ID = $this->EE->functions->insert_action_ids($this->EE->functions->fetch_action_id('classname', 'method'));
更新
我应该补充一点,这种方法可以在任何地方使用——前端以及CP中。但是正如一些人所提到的,在模板中使用“insert_action_ids”方法并让模板解析器用正确的操作ID替换它们对性能最好。

你能澄清一下$this->EE或$FNS对象是什么吗。这里没有太多内容。
$this->EE->functions->fetch\u action\u id()
是EE2语法
$FNS->fetch_action_id()
是EE1语法。现在-你到底想做什么?背景是什么?它返回的内容正是它应该返回的内容,但它不会被解析-它只是作为字符串返回。您确定该操作已在exp_actions表中注册吗?Chris,您是否已注册建议的EE堆栈交换站点?