Я хотел бы добавить поле типа массив в мою базу данных и иметь возможность использовать его, как и FOSUserBundle с ролями.
Цель состоит в том, чтобы добавить таблицу пакетов в мою сущность User.
Мне не нужна таблица соединений.
Я воспроизвел ту же схему, что и для ролей, и добавил все это в свою сущность пользователя
Некоторыекод моего объекта User.php:
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
/**
* @var array
*
* @ORM\Column(name="packages", type="array", length=255)
*/
private $packages;
public function addPackage($package)
{
if (!in_array($package, $this->packages, true)) {
$this->packages[] = $package;
}
}
/**
* {@inheritdoc}
*
* @return array
*/
public function getPackages()
{
return $this->packages;
}
/**
* {@inheritdoc}
*/
public function setPackages(array $packages)
{
$this->packages = array();
foreach ($packages as $package) {
$this->addPackage($package);
}
return $this;
}
/**
* {@inheritdoc}
*/
public function removePackage($package)
{
if (false !== $key = array_search(strtoupper($package), $this->packages, true)) {
unset($this->packages[$key]);
$this->packages = array_values($this->packages);
}
return $this;
}
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->packages = array();
}
В моей базе данных присутствует поле пакетов, и оно похоже на поле ролей.Но когда я соединяюсь с моим пользователем на сайте, у меня появляется эта ошибка:
Не удалось преобразовать значение базы данных "" в массив типа доктрины
Кто-то узнает, что не такс кодом?
Скриншот моей базы данных:
Структура базы данных Вид базы данных