Моя текущая настройка описана ниже.То, чего я хочу достичь - этоОдин дистрибьютор может иметь несколько категорий.Но Одна категория может иметь 1 распространителя 1: N <=> N: 1.Но происходит сбой, когда я нажимаю кнопку создания категории, даже если поле ввода распределителя пусто.
Категория
/**
* @var string
*
* @ORM\Id()
* @ORM\Column(type="string", nullable=false, unique=true)
* @ORM\GeneratedValue(strategy="UUID")
*/
private $id;
/**
* @var string
* @ORM\Column(type="string", nullable=false)
*/
private $title;
/**
* @var Distributor
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Distributor", inversedBy="category")
* @ORM\JoinColumn(referencedColumnName="id")
*/
private $distributor;
Распределитель:
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
private $name;
/**
* @var ArrayCollection
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Category", mappedBy="distributor")
*/
private $category;
public function __construct()
{
$this->category = new ArrayCollection();
}
CategoryForm:
$builder
->add('parent', EntityType::class, [
'class' => Category::class,
'choice_label' => 'title',
'multiple' => true,
'required' => false,
'attr' => [
'class' => 'select2 form-control select2insidemodal js-example-matcher'
]
])
->add('title', TextType::class, [
'label' => 'Title',
'required' => true,
'by_reference' => true
])
->add('distributor', EntityType::class, [
'class' => Distributor::class,
'choice_label' => 'name',
'required' => false,
'attr' => [
'class' => 'select2 form-control select2insidemodal js-example-matcher'
]
]);
Создать действие категории
public function createAction(Request $request)
{
$category = new Category();
$categoryForm = $this->createForm(CategoryForm::class, $category);
$categoryForm->handleRequest($request);
if ($categoryForm->isSubmitted() && $categoryForm->isValid()) {
$result = $this->categoryService->create($category);
}
return $this->render(
'@app_bar/Category/categoryNew.twig',
[
'form' => $categoryForm->createView(),
]
);
}
Я получаю сообщение об ошибке:
Ожидаемый аргумент типа «AppBundle \ Entity \ Category», «Doctrine \ Common \ Collections \ ArrayCollection», заданный