Я с трудом решаю эту проблему, добавляя роли в данные, используя пакет hautelook. Я создаю провайдера, который будет добавлять роли к светильникам
<?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
Я понятия не имею, как это исправить. Даже я настраиваю массив. Я получаю ошибку. у меня есть это ссылка на сайт но это тоже не работает. тот же результат
Вы можете просто определить такие $ роли в вашей сущности AdminUser:
/**
* @var array
*/
protected $roles = [];
По умолчанию $ role имеет значение null и не может использоваться в качестве массива.
Синтаксис для массивов с AliceBundle использует []
Так что это должно работать:
AppBundle\Entity\AdminUser:
adminuser_101:
username: '<username()>'
email: '<email()>'
adminUserType: 2
enabled: true
roles: ['<roleAdvocate()>']
В моем проекте. Я создаю другую сущность под названием AdminUser Entity. Эту сущность я наследую абстрактному классу User
class AdminUser extends User
Затем я понимаю, что забыл добавить этот метод для наследования родительского конструктора.
public function __construct()
{
parent::__construct();
}