Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >FOSUserBundle - MultiSelect组在更新后不起作用

FOSUserBundle - MultiSelect组在更新后不起作用
EN

Stack Overflow用户
提问于 2015-09-28 20:43:00
回答 1查看 48关注 0票数 1

我在symfony项目中更新了composer,我不能继续使用我的自定义"SecurityRolesType“。

有没有更新它的想法?下面,代码和错误。

错误:注意:数组到字符串转换500内部服务器错误- ContextErrorException

这里是一个堆栈屏幕捕获http://s11.postimg.org/j6nlup4ar/screencapture_stack.jpg

这里捕获了呈现的超文本标记语言http://s17.postimg.org/l6mmskmof/Screen_Shot_2015_09_28_at_10_41_19_PM.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

namespace MYP\UserBundle\Form\Type;

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\OptionsResolver\Options;
use Sonata\AdminBundle\Admin\Pool;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;

class SecurityRolesType extends ChoiceType
{
    protected $pool;

    /**
     * @param Pool $pool
     */
    public function __construct(Pool $pool)
    {
        parent::__construct();
        $this->pool = $pool;
    }

    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);
    }

    /**
     * {@inheritdoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        parent::buildView($view, $form, $options);

        $attr = $view->vars['attr'];

        if (isset($attr['class']) && empty($attr['class'])) {
            $attr['class'] = 'sonata-medium';
        }

        $view->vars['attr'] = $attr;
        $view->vars['read_only_choices'] = $options['read_only_choices'];
        //$view->vars['full_name'] = substr($view->vars['full_name'], 0, -2);

    }

    /**
     * {@inheritdoc}
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        parent::setDefaultOptions($resolver);

        $roles = array();
        $rolesReadOnly = array();

        $securityContext = $this->pool->getContainer()->get('security.context');

        // get roles from the Admin classes
        foreach ($this->pool->getAdminServiceIds() as $id) {
            try {
                $admin = $this->pool->getInstance($id);
            } catch (\Exception $e) {
                continue;
            }

            $isMaster = $admin->isGranted('MASTER');
            $securityHandler = $admin->getSecurityHandler();
            // TODO get the base role from the admin or security handler
            $baseRole = $securityHandler->getBaseRole($admin);

            foreach ($admin->getSecurityInformation() as $role => $permissions) {
                $role = sprintf($baseRole, $role);

                if ($isMaster) {
                    // if the user has the MASTER permission, allow to grant access the admin roles to other users
                    $roles[$role] = $role;
                } elseif ($securityContext->isGranted($role)) {
                    // although the user has no MASTER permission, allow the currently logged in user to view the role
                    $rolesReadOnly[$role] = $role;
                }
            }
        }

        // get roles from the service container
        foreach ($this->pool->getContainer()->getParameter('security.role_hierarchy.roles') as $name => $rolesHierarchy) {

            if ($securityContext->isGranted($name)) {
                $roles[$name] = $name . ': ' . implode(', ', $rolesHierarchy);

                foreach ($rolesHierarchy as $role) {
                    if (!isset($roles[$role])) {
                        $roles[$role] = $role;
                    }
                }
            }
        }

        $resolver->setDefaults(array(
            'choices' => function (Options $options, $parentChoices) use ($roles) {
                return empty($parentChoices) ? $roles : array();
            },

            'read_only_choices' => function (Options $options) use ($rolesReadOnly) {
                return empty($options['choices']) ? $rolesReadOnly : array();
            },

            'data_class' => null,

            //'expanded' => true
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return 'choice';
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'myp_security_roles';
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-09-29 06:51:04

最后,在一些缓存删除之后,您可以看到注释的修复是有效的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$view->vars['full_name'] = substr($view->vars['full_name'], 0, -2);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32831473

复制
相关文章
java解析xml工具类[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143972.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.4K0
Java XML解析工具类
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162472.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/16
1.3K0
java 解析处理XML字符串
String text = "<members> <member>sitinspring</member> </members>"; org.dom4j.Document document = DocumentHelper.parseText(text); String text1 = document.selectSingleNode("/members/member").getText(); System.out.println(text1); <dependency> <groupId>ja
前Thoughtworks-杨焱
2021/12/08
4720
java解析XML格式字符串
一个字符串 <message>HELLO!</message>,怎样解析得到HELLO!? 正则表达式可以轻松解决,但是节点多了就搞不定了。 1、使用JDOM String xml = "<mess
matinal
2020/11/27
1.9K0
Java解析XML字符串「建议收藏」
在网上找了很多Java语言解析XML字符串的资料,很多内容写得很繁复,没有普适性,遂自己动手写了一个用Java解析XML的工具类。话不多说,直接看下面代码:
全栈程序员站长
2022/09/05
7090
xml解析---Java解析xml文件
dom4j解析xml文件、之前用下面的方法,90M的xml,500万行,解析完插入数据库,单线程,不到1小时搞定,而只是解析数据,只用了7秒。
IT云清
2019/01/22
7.1K0
java 解析xml报文(字符串)「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135916.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
1.9K0
JAVA解析XML格式字符串「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140692.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
2.2K0
Java解析XML字符串格式「建议收藏」
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。
全栈程序员站长
2022/09/05
1K0
xml解析工具-jdom
前言:近期接触SSH框架的时候,经常得配置一下xml文件;今天闲来没事就挖挖xml解析的原理供大伙儿分享。本文主要通过一个简单的例子解析一个xml文件。明白其中缘由之后,大家想定义自己的xml也绝非难事~
云海谷天
2022/08/09
7510
xml解析工具-jdom
Java 解析 XML[通俗易懂]
JAXP是JavaSE的一部分,在javax.xml.parsers包下,分别针对dom与sax提供了如下解析器:
全栈程序员站长
2022/09/05
1.9K0
xml解析---Java解析xml文件 /江格式解析
本文源于:http://www.cnblogs.com/Qian123/p/5231303.html点击这里
IT云清
2019/01/22
4K0
字符串解析成XML
用户3519280
2023/07/07
1520
Python解析XML字符串
# -*- coding: utf-8 -*- import xml.sax   import xml.sax.handler   class XMLHandler(xml.sax.handler.ContentHandler):   def __init__(self):   self.buffer = ""                     self.mapping = {}                   def startElement(se
py3study
2020/01/10
1.4K0
java 解析 XML实例
package com.hseact.fecp.servlet; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.json.JSONObject; import org.json.XM
庞小明
2018/03/07
1.4K0
Java解析XML文件
1.DOM方式解析XML Dom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的一种基础的解析XML文件的API,理解较简单,但是由于整个文档都需要载入内存,不适用于文档较大时。
全栈程序员站长
2022/08/18
1.9K0
[ java 工具类] xml字符串解析成Map(DOM解析)
package com.tencent.jungle.wechat.util; import com.google.inject.Singleton; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import javax.xml.parsers.DocumentBuilder; import javax.xml.pars
Tencent JCoder
2018/12/14
3.3K0
java xml解析框架_JAVA解析xml的五种方式对比
本篇文章主要对比Java即系xml的五种方式,这五种方式各有利弊,大家可以看情况采用哪一种。
全栈程序员站长
2022/09/05
1.7K0
tinyXml直接解析XML字符串
tinyxml性能太差了,小文件还行,大文件痛苦死了 pugixml是一个不错的选择
用户3519280
2023/07/06
2970
Java解析XML的实践
通过这段代码,重点是需要理解他的解析过程,就可以根据实际用到的XML格式,写出对应的解析逻辑。
bisal
2023/02/16
1K0

相似问题

是否可以以编程方式更改全局偏移表/GOT或过程链接表/PLT?

38

过程链接表和调用关系表

11

用于链接表中行的存储过程

10

防止GDB中的PLT (过程链接表)断点

46

EF和链接表

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文