如何在hautelook alicebundle中设置角色datafixtures?

时间:2017-11-23 09:36:05

标签: php symfony fosuserbundle nelmio-alice alice-fixtures

我很难通过使用hautelook软件包在datafixtures中添加角色来解决此问题。我创建了一个将角色添加到灯具的提供商

<?php

namespace AdminBundle\DataFixtures\Faker\Provider;
use AppBundle\Entity\AdminUserTypes;

class Roles
{
    public function roleAdvocate(){

        return ['ROLE_ADMIN', 'ROLE_ADVOCATE'];
    }
}

在我的datafixtures yml中我有这段代码

AppBundle\Entity\AdminUser:
    adminuser_101:
        username: '<username()>'
        email: '<email()>'
        adminUserType: 2
        enabled: true
        roles: '<roleAdvocate()>'

当我运行phpunit的时候,我总是从角色

得到这个结果错误
  Warning: in_array() expects parameter 2 to be array, null given

我现在不知道如何修复它。即使我调整阵列。我收到一个错误。我有这个link,但它也不起作用。相同的结果

3 个答案:

答案 0 :(得分:1)

您可以在AdminUser实体中简单地定义$ roles:

/**
 * @var array
 */
protected $roles = [];

默认情况下,$ roles为空,不能用作数组。

答案 1 :(得分:1)

带有AliceBundle的数组的语法使用[]

所以这应该起作用:

AppBundle\Entity\AdminUser: adminuser_101: username: '<username()>' email: '<email()>' adminUserType: 2 enabled: true roles: ['<roleAdvocate()>']

答案 2 :(得分:-1)

在我的项目中。我创建了另一个名为 AdminUser Entity 的实体。这个实体我继承了抽象类User

class AdminUser extends User

然后我意识到我忘了添加这个方法来继承父构造函数。

 public function __construct()
    {
        parent::__construct();
    }