Bonjour,
Voilà, Je suis en train de développer un système de réorganisation d'entité.
Pour faire cela, j'utilise donc Sortable de la librairie jQueryUI et Sortable de package Stof\DoctrineExtensionsBundle
Alors au niveau affichage de pas de problème, mais ce qui me pose problème concerne le formulaire.
J'essaye de faire en sorte d'appliquer un champ à chaque entité en créant un formulaire avec les fonctionnalités de Symfony.
Pour cela, je me suis interesser au type EntityType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("position", EntityType::class, [
"required" => false,
"choice_label" => "getId",
"label" => false,
"multiple" => true,
"expanded" => true,
"class" => "AppBundle:Staff",
"choice_value" => "getPosition",
"query_builder" => function (EntityRepository $er) {
return $er->createQueryBuilder("s")->orderBy("s.position", "ASC");
},
]);
}
public function indexAction()
{
$staffList = $this->getRepository("AppBundle:Staff")->findBy([], ["position" => "ASC"]);
$staffOrderForm = $this->createForm(OrderStaffType::class, $staffList);
return ["staffList" => $staffList, "staffOrderForm" => $staffOrderForm->createView()];
}
Avec ceci, j'ai 3 problèmes :
Pour ceux qui concernent le référencement de l'input, je veux parler de l'id dans l'attribut "name" car actuellement il n'affiche pas l'id.
On peut voir que le label correspond à l'id de l'élément mais il n'est pas présent dans le name.
De même, si je veux l'appeler manuellement, j'ai une erreur car Symfony considère la valeur de l'input comme clé.
Je voudrais directement passer une liste d'entité en tant que deuxième argument de la méthode createForm
pour éviter de réexécuter la même requête.
Je vous remercie d'avance pour l'aide :)
Cordialement;