Symfony 如何根据服务路线获取服务标签?

Symfony 如何根据服务路线获取服务标签?,symfony,sonata-admin,Symfony,Sonata Admin,我正在开发一个权限系统,我想获得有关Sonata中加载的所有管理类的信息。 我有一份所有这些课程的列表 $this->getConfigurationPool()->getAdminClassas(); 我想获得这些服务的定义标签(组/标签) 谢谢 您可以通过调用getConfigurationPool() 上面将返回设置为在_dashboard=true中显示_的所有管理员标签,您可以通过其服务ID获取这些标签 $services=$this->getConfigurationP

我正在开发一个权限系统,我想获得有关Sonata中加载的所有管理类的信息。 我有一份所有这些课程的列表

$this->getConfigurationPool()->getAdminClassas();
我想获得这些服务的定义标签(组/标签)


谢谢

您可以通过调用
getConfigurationPool()

上面将返回设置为在_dashboard=true中显示_的所有管理员标签,您可以通过其服务ID获取这些标签

$services=$this->getConfigurationPool()->getAdminServiceId();
$container=$this->getConfigurationPool()->getContainer();
$adminLabels=array();
foreach($key=>$val的服务){
$admin=$container->get($val);
$adminLabels['label'][=$admin->getLabel();
}
回声';打印标签;回声';
$groups=$this->getConfigurationPool()->getDashboardGroups();
$adminGroups=array();
$i = 0;
foreach ($groups as $key => $val) {
    $adminGroups['groups'][$i]['label']=$val['label'];
    foreach ($val['items'] as $items) {
        $adminGroups['groups'][$i]['items'][]=$items->getLabel();

    }
$i++;
}
echo '<pre>';print_r($adminGroups);echo '</pre>';
Array
(
    [groups] => Array
        (
            [0] => Array
                (
                    [label] => Group 1
                    [items] => Array
                        (
                            [0] => Menu item 1
                        )

                )

            [1] => Array
                (
                    [label] => Group 2
                    [items] => Array
                        (
                            [0] => Menu item 1
                            [1] => Menu item 2
                            [2] => Menu item 3
                        )

                )

            [2] => Array
                (
                    [label] => Group 3
                    [items] => Array
                        (
                            [0] => Menu item 1
                            [1] => Menu item 2
                        )

                )
   /*And so on ....*/
        )
)
$services = $this->getConfigurationPool()->getAdminServiceIds();
$container = $this->getConfigurationPool()->getContainer();
$adminLabels = array();
foreach ($services as $key => $val) {
    $admin = $container->get($val);
    $adminLabels['label'][] = $admin->getLabel();
}
echo '<pre>';print_r($adminLabels);echo '</pre>';