Php OctoberCMS注册表激活当前活动子菜单链接的错误状态

Php OctoberCMS注册表激活当前活动子菜单链接的错误状态,php,octobercms,octobercms-backend,octobercms-plugins,Php,Octobercms,Octobercms Backend,Octobercms Plugins,我一直在使用()创建不同的插件,效果很好 我有一个名为Partners的插件,在plugin.php文件代码中,我有以下代码 Plugin.php代码 public function registerNavigation() { return [ 'modules' => [ 'label' => 'Modules', 'url' => B

我一直在使用()创建不同的插件,效果很好

我有一个名为Partners的插件,在plugin.php文件代码中,我有以下代码

Plugin.php代码

public function registerNavigation()
    {
        return [
            'modules' => [
                'label'       => 'Modules',
                'url'         => Backend::url('technobrave/partners/partners'),
                'icon'        => 'icon-bars',
                'permissions' => ['Technobrave.Partner.*'],

                'sideMenu'    => [
                    'partner' => [
                            'label' => 'Partners',
                            'icon'        => 'icon-thumbs-up',
                            'url'         => Backend::url('technobrave/partners/partners'),
                            'permissions' => ['Technobrave.Partner.*']

                    ],
                    'team' => [
                            'label' => 'Team',
                            'icon'        => 'icon-group',
                            'url'         => Backend::url('technobrave/team/team'),
                            'permissions' => ['Technobrave.Team.*']
                    ]
                ]
            ]
        ];
    }
下面是我的Partners.php控制器文件代码

Partners.php控制器代码

public function __construct()
    {
        parent::__construct();             
        BackendMenu::setContext('Technobrave.Partners', 'modules', 'team');
    }
除了我当前的活动课程外,一切正常,即使我在合作伙伴页面上,它仍然选择“团队”作为当前菜单链接。下面是带有浏览器URL的屏幕截图,以便更好地理解

正如您在上面所看到的,我在合作伙伴页面上,它仍然将当前活动的URL显示为团队页面。有人能帮我处理这件事吗

谢谢


PS:添加了
PHP
tag if someone tag,如果有人知道并且曾经使用过此CMS,我需要帮助。

您需要为每个控制器设置菜单上下文。 对于
Partners.php
使用以下命令:

public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'partner');
}
public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'team');
}
对于
Team.php
使用以下命令:

public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'partner');
}
public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'team');
}

您需要为每个控制器设置菜单上下文。 对于
Partners.php
使用以下命令:

public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'partner');
}
public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'team');
}
对于
Team.php
使用以下命令:

public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'partner');
}
public function __construct()
{
    parent::__construct();             
    BackendMenu::setContext('Technobrave.Partners', 'modules', 'team');
}

Sry,我没注意到你的主菜单也叫partners。
setContext
函数的第二个参数采用父项url,第三个参数应为页面url OK,检查最新编辑。我查看了我自己的
plugin.php
作为参考,这应该会更好,我忽略了一个事实,即您的主菜单项也被称为partners。
setContext
函数的第二个参数采用父项url,第三个参数应为页面url OK,检查最新编辑。我检查了我自己的
plugin.php
作为参考,这应该更好