Приветствую.
Есть entity
class Category
{
...
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var Category
* @ORM\ManyToOne(targetEntity="Category", inversedBy="children", cascade={"persist"})
* @ORM\JoinColumn(referencedColumnName="id", onDelete="CASCADE")
* @ORM\Cache(usage="NONSTRICT_READ_WRITE")
*/
private $parent;
...
Есть форма.
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, [
'label' => "Категория",
])
->add('parent', EntityType::class, [
'label' => "Родительская категория",
"class" => Category::class,
"choice_label" => "name",
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('c')
->where('c.parent != :category')
->setParameter('category', ???);
}
]);
}
Есть edit action.
public function editAction(Request $request, Category $category)
{
$editForm = $this->createForm('MyBundle\Form\CategoryType', $category);
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid()) {
...
}
return $this->render...
}
Собственно всё стандартно. При редактировании категории можно указать родительскую категорию. Но в этом списке появляется так же и редактируемая категория. Как в query_builder указать текущую (редактируемую категорию), чтобы исключить её из списка выбора?
Спасибо.