好的,伙计们,最终,我能够使它工作。这就是我在下面所做的
例如,我有 2 个名为Partners和Properties的插件。
在合作伙伴插件中,我在我的Plugin.php文件中编写了类似的代码。
插件\technobrave\partners\Plugin.php
<?php namespace Technobrave\Partners;
use System\Classes\PluginBase;
use Backend;
use Event;
class Plugin extends PluginBase
{
public function registerNavigation()
{
return [
'modules' => [
'label' => 'Modules',
'url' => Backend::url('technobrave/properties/properties'),
'icon' => 'icon-bars',
'permissions' => ['Technobrave.Property.*'],
'sideMenu' => [
'properties' => [
'label' => 'Properties',
'icon' => 'icon-home',
'url' => Backend::url('technobrave/properties/properties'),
'permissions' => ['Technobrave.Property.*']
],
'partner' => [
'label' => 'Partners',
'icon' => 'icon-thumbs-up',
'url' => Backend::url('technobrave/partners/partners'),
'permissions' => ['Technobrave.Partner.*']
],
]
]
];
}
在这里,正如您在上面看到的,我的标题菜单链接将根据我的要求重定向到属性插件,对于左侧栏菜单,我的第一个链接也将重定向到属性插件,下一个子菜单链接将重定向到合作伙伴插件。
然后我去了合作伙伴控制器并输入如下代码。
插件\technobrave\partners\controllers\Partners.php
<?php namespace Technobrave\Partners\Controllers;
use Backend\Classes\Controller;
use BackendMenu;
class Partners extends Controller
{
public function __construct()
{
parent::__construct();
BackendMenu::setContext('Technobrave.Partners', 'modules', 'partner');
}
}
在上面,如您所见,我刚刚将菜单执行到合作伙伴插件中,以便能够在我在合作伙伴列表中或在 CRUD 操作或其他地方显示它。
我为Properties插件做了类似的事情,以便能够在Properties插件中显示菜单。这就是我的代码的样子。
插件\technobrave\properties\controllers\Properties.php
<?php namespace Technobrave\Properties\Controllers;
use Backend\Classes\Controller;
use BackendMenu;
class Properties extends Controller
{
public function __construct() {
parent::__construct();
BackendMenu::setContext('Technobrave.Partners', 'modules', 'properties');
}
}
在此代码中需要注意的一件事 BackendMenu::setContext('Technobrave.Partners', 'modules', 'properties');
最后一个参数与我们在合作伙伴插件中的参数不同。
BackendMenu::setContext('Technobrave.Partners', 'modules', 'properties');
这是从左侧边栏的列表中设置为默认选择的菜单。
希望这可以帮助。