Symfony 2,Sonata 用户捆绑包:无效状态,originalRoles 数组未设置

问题描述 投票:0回答:1

当我尝试创建新用户时,无论选择或不选择角色,我都会遇到此错误:

无效状态,originalRoles 数组未设置

以这种方式添加角色选择(未修改,直接来自供应商):

->add('realRoles', 'sonata_security_roles', array(
                    'label'    => 'form.label_roles',
                    'expanded' => true,
                    'multiple' => true,
                    'required' => false
                ))

这里是返回异常的代码(直接来自供应商,所以在这里修复错误可能不是一个好主意,除非它是一个真正的问题)。

/**
 * {@inheritdoc}
 */
public function reverseTransform($selectedRoles)
{
    if ($this->originalRoles === null) {
        throw new \RuntimeException('Invalid state, originalRoles array is not set');
    }

    list($availableRoles, ) = $this->rolesBuilder->getRoles();

    $hiddenRoles = array_diff($this->originalRoles, $availableRoles);

    return array_merge($selectedRoles, $hiddenRoles);
}

有什么解决办法或提示吗?

更新:

问题已移至 Github Sonata,并提供更多信息。

php symfony sonata-admin sonata-user-bundle
1个回答
1
投票

Sonata\UserBundle\Entity\BaseUser

扩展的实体中重新定义构造函数导致的问题

要解决此问题,请在子实体中添加

parent::construct()

© www.soinside.com 2019 - 2024. All rights reserved.