CakePHP - 锚类不变(未定义的变量 $action)

Posted

技术标签:

【中文标题】CakePHP - 锚类不变(未定义的变量 $action)【英文标题】:CakePHP - Anchor class not changing (undefined variable $action) 【发布时间】:2021-12-18 00:13:22 【问题描述】:

我想在我的锚链接处于活动状态但无法正常工作时为其添加一个类。那么我该如何声明 $action 变量呢?

版本:

 4.2.9

错误:

Undefined variable: action [ROOT\templates\layout\default.php, line 108]

模板/布局/default.php

<li>
    <?= $this->html->link(
        '<div class="icon"></div>'.__('Summary'),
        ['controller' => 'modules', 'action' => 'summary'],
        [
        'escapeTitle' => false,
        'class' => 'icon-summary '.( ($controller == 'Modules' && $action == 'summary') ? 'active' : '')
        ]
    ) ?>
</li>

在我的 ModulesController.php 中

  public function summary()
  
      $modules = $this->getAllModules();
  

来自 DebugKit 的路由参数

'controller' => 'Modules',
'action' => 'summary',
'pass' => [ ],
'plugin' => null,
'_matchedRoute' => '/controller/action/*',
'_ext' => null,
]

【问题讨论】:

这是因为这里没有定义名为$action 的变量。路由中有一个名为 action 的组件,但您还没有从那里提取它。 我必须在哪里提取它?在我的 ModulesController 中? 【参考方案1】:

在我的AppController.php 中,我在beforeRender() 函数中插入了下面的代码。现在我可以访问action 变量了。

$this->set('action', $this->request->getParam('action'));

非常感谢

【讨论】:

以上是关于CakePHP - 锚类不变(未定义的变量 $action)的主要内容,如果未能解决你的问题,请参考以下文章

调用未定义的方法 Cake\ORM\Entity::query() CakePhp

在 CakePHP 2.10.24 上调用未定义的方法 Redis::delete()

多个锚链接菜单活动锚类

CakePHP3 迭代模型不起作用

CakePHP:表单输入(呈现为选择)未正确处理 hasOne 关系

CakePHP中的T_CONSTANT_ENCAPSED_STRING [重复]