Aroused
@Aroused

Как заставить Sonata Admin Bundle работать с типом FieldType Entity в формате simple_array?

Есть две сущности "Category" и "Product". Нужно сделать так, что бы была возможность редактировать категории продукта в режиме multiple и сохранять значение в виде simple_array.
class Product
. . .
/**
 * @var array
 *
 * @ORM\Column(name="categories", type="simple_array", nullable=true)
 */
private $categories;

public function __construct()
{
    $this->categories = new ArrayCollection();
}

class Category
. . .
public function __toString()
{
    return (string) $this->id;
}

$formMapper->add('categories', 'entity', array(
    'class' => 'Site\AppBundle\Entity\Category',
    'choice_label' => 'name',
    'multiple' => true
));

Беда в том, что по сути, категории продукта сохраняются как мне нужно (вижу в базе "2,5,7,9").
Но! Eсли повторно зайти в product, то в поле категорий чисто. Как это исправить?
p.s. Symfony 3
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Вам нужно повесить на поле формы `categories`
Data Transformers
Проблема в том, что форма ждет, что в Product::getCategories будет возвращать объекты класса Site\AppBundle\Entity\Category, а у вас там массив их id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы